Skip to content

Commit dfada0f

Browse files
committed
Add section on advanced usage to docs (#45)
1 parent 8d40179 commit dfada0f

File tree

4 files changed

+100
-12
lines changed

4 files changed

+100
-12
lines changed

docs/main.de.html

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,13 @@ <h1 class="title">Benutzeranleitung für DBUtils</h1>
4444
<li><p><a class="reference internal" href="#pooleddb-pooled-db-1" id="toc-entry-15">PooledDB (pooled_db)</a></p></li>
4545
</ul>
4646
</li>
47-
<li><p><a class="reference internal" href="#anmerkungen" id="toc-entry-16">Anmerkungen</a></p></li>
48-
<li><p><a class="reference internal" href="#zukunft" id="toc-entry-17">Zukunft</a></p></li>
49-
<li><p><a class="reference internal" href="#fehlermeldungen-und-feedback" id="toc-entry-18">Fehlermeldungen und Feedback</a></p></li>
50-
<li><p><a class="reference internal" href="#links" id="toc-entry-19">Links</a></p></li>
51-
<li><p><a class="reference internal" href="#autoren" id="toc-entry-20">Autoren</a></p></li>
52-
<li><p><a class="reference internal" href="#copyright-und-lizenz" id="toc-entry-21">Copyright und Lizenz</a></p></li>
47+
<li><p><a class="reference internal" href="#besonderheiten-bei-der-benutzung" id="toc-entry-16">Besonderheiten bei der Benutzung</a></p></li>
48+
<li><p><a class="reference internal" href="#anmerkungen" id="toc-entry-17">Anmerkungen</a></p></li>
49+
<li><p><a class="reference internal" href="#zukunft" id="toc-entry-18">Zukunft</a></p></li>
50+
<li><p><a class="reference internal" href="#fehlermeldungen-und-feedback" id="toc-entry-19">Fehlermeldungen und Feedback</a></p></li>
51+
<li><p><a class="reference internal" href="#links" id="toc-entry-20">Links</a></p></li>
52+
<li><p><a class="reference internal" href="#autoren" id="toc-entry-21">Autoren</a></p></li>
53+
<li><p><a class="reference internal" href="#copyright-und-lizenz" id="toc-entry-22">Copyright und Lizenz</a></p></li>
5354
</ul>
5455
</nav>
5556
<section id="zusammenfassung">
@@ -435,6 +436,27 @@ <h3>PooledDB (pooled_db)</h3>
435436
wieder an den Verbindungspool zurückgegeben wird.</p>
436437
</section>
437438
</section>
439+
<section id="besonderheiten-bei-der-benutzung">
440+
<h2>Besonderheiten bei der Benutzung</h2>
441+
<p>Manchmal möchte man Datenbankverbindung besonders vorbereiten, bevor sie
442+
von DBUtils verwendet werden, und dies ist nicht immer durch Verwendung
443+
der passenden Parameter möglich. Zum Beispiel kann es <span class="docutils literal">pyodb</span> erfordern,
444+
dass man die Methode <span class="docutils literal">setencoding()</span> der Datenbankverbindung aufruft.
445+
Sie können dies erreichen, indem Sie eine modifizierte Version der
446+
Funktion <span class="docutils literal">connect()</span> verwenden und diese als <span class="docutils literal">creator</span> (dem ersten
447+
Argument) an <span class="docutils literal">PersistentDB</span> oder <span class="docutils literal">PooledDB</span> übergeben, etwa so:</p>
448+
<pre class="literal-block">from pyodbc import connect
449+
from dbutils.pooled_db import PooledDB
450+
451+
def creator():
452+
con = connect(...)
453+
con.setdecoding(...)
454+
return con
455+
456+
creator.dbapi = pyodbc
457+
458+
db_pool = PooledDB(creator, mincached=5)</pre>
459+
</section>
438460
<section id="anmerkungen">
439461
<h2>Anmerkungen</h2>
440462
<p>Wenn Sie einen der bekannten &quot;Object-Relational Mapper&quot; <a class="reference external" href="http://sqlobject.org/">SQLObject</a> oder

docs/main.de.rst

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,29 @@ ausgesetzt wird, und dass die Verbindung zurückgerollt wird, bevor sie
461461
wieder an den Verbindungspool zurückgegeben wird.
462462

463463

464+
Besonderheiten bei der Benutzung
465+
================================
466+
Manchmal möchte man Datenbankverbindung besonders vorbereiten, bevor sie
467+
von DBUtils verwendet werden, und dies ist nicht immer durch Verwendung
468+
der passenden Parameter möglich. Zum Beispiel kann es ``pyodb`` erfordern,
469+
dass man die Methode ``setencoding()`` der Datenbankverbindung aufruft.
470+
Sie können dies erreichen, indem Sie eine modifizierte Version der
471+
Funktion ``connect()`` verwenden und diese als ``creator`` (dem ersten
472+
Argument) an ``PersistentDB`` oder ``PooledDB`` übergeben, etwa so::
473+
474+
from pyodbc import connect
475+
from dbutils.pooled_db import PooledDB
476+
477+
def creator():
478+
con = connect(...)
479+
con.setdecoding(...)
480+
return con
481+
482+
creator.dbapi = pyodbc
483+
484+
db_pool = PooledDB(creator, mincached=5)
485+
486+
464487
Anmerkungen
465488
===========
466489
Wenn Sie einen der bekannten "Object-Relational Mapper" SQLObject_ oder

docs/main.html

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,13 @@ <h1 class="title">DBUtils User's Guide</h1>
4444
<li><p><a class="reference internal" href="#pooleddb-pooled-db-1" id="toc-entry-15">PooledDB (pooled_db)</a></p></li>
4545
</ul>
4646
</li>
47-
<li><p><a class="reference internal" href="#notes" id="toc-entry-16">Notes</a></p></li>
48-
<li><p><a class="reference internal" href="#future" id="toc-entry-17">Future</a></p></li>
49-
<li><p><a class="reference internal" href="#bug-reports-and-feedback" id="toc-entry-18">Bug reports and feedback</a></p></li>
50-
<li><p><a class="reference internal" href="#links" id="toc-entry-19">Links</a></p></li>
51-
<li><p><a class="reference internal" href="#credits" id="toc-entry-20">Credits</a></p></li>
52-
<li><p><a class="reference internal" href="#copyright-and-license" id="toc-entry-21">Copyright and License</a></p></li>
47+
<li><p><a class="reference internal" href="#advanced-usage" id="toc-entry-16">Advanced Usage</a></p></li>
48+
<li><p><a class="reference internal" href="#notes" id="toc-entry-17">Notes</a></p></li>
49+
<li><p><a class="reference internal" href="#future" id="toc-entry-18">Future</a></p></li>
50+
<li><p><a class="reference internal" href="#bug-reports-and-feedback" id="toc-entry-19">Bug reports and feedback</a></p></li>
51+
<li><p><a class="reference internal" href="#links" id="toc-entry-20">Links</a></p></li>
52+
<li><p><a class="reference internal" href="#credits" id="toc-entry-21">Credits</a></p></li>
53+
<li><p><a class="reference internal" href="#copyright-and-license" id="toc-entry-22">Copyright and License</a></p></li>
5354
</ul>
5455
</nav>
5556
<section id="synopsis">
@@ -396,6 +397,26 @@ <h3>PooledDB (pooled_db)</h3>
396397
back before being given back to the connection pool.</p>
397398
</section>
398399
</section>
400+
<section id="advanced-usage">
401+
<h2>Advanced Usage</h2>
402+
<p>Sometimes you may want to prepare connections before they are used by
403+
DBUtils, in ways that are not possible by just using the right parameters.
404+
For instance, <span class="docutils literal">pyodbc</span> may require to configure connections by calling
405+
the <span class="docutils literal">setencoding()</span> method of the connection. You can do this by passing
406+
a modified <span class="docutils literal">connect()</span> function to <span class="docutils literal">PersistentDB</span> or <span class="docutils literal">PooledDB</span> as
407+
<span class="docutils literal">creator</span> (the first argument), like this:</p>
408+
<pre class="literal-block">from pyodbc import connect
409+
from dbutils.pooled_db import PooledDB
410+
411+
def creator():
412+
con = connect(...)
413+
con.setdecoding(...)
414+
return con
415+
416+
creator.dbapi = pyodbc
417+
418+
db_pool = PooledDB(creator, mincached=5)</pre>
419+
</section>
399420
<section id="notes">
400421
<h2>Notes</h2>
401422
<p>If you are using one of the popular object-relational mappers <a class="reference external" href="http://www.sqlobject.org/">SQLObject</a>

docs/main.rst

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,28 @@ until the end of the transaction, and that the connection will be rolled
421421
back before being given back to the connection pool.
422422

423423

424+
Advanced Usage
425+
==============
426+
Sometimes you may want to prepare connections before they are used by
427+
DBUtils, in ways that are not possible by just using the right parameters.
428+
For instance, ``pyodbc`` may require to configure connections by calling
429+
the ``setencoding()`` method of the connection. You can do this by passing
430+
a modified ``connect()`` function to ``PersistentDB`` or ``PooledDB`` as
431+
``creator`` (the first argument), like this::
432+
433+
from pyodbc import connect
434+
from dbutils.pooled_db import PooledDB
435+
436+
def creator():
437+
con = connect(...)
438+
con.setdecoding(...)
439+
return con
440+
441+
creator.dbapi = pyodbc
442+
443+
db_pool = PooledDB(creator, mincached=5)
444+
445+
424446
Notes
425447
=====
426448
If you are using one of the popular object-relational mappers SQLObject_

0 commit comments

Comments
 (0)