annotate Doc/includes/sqlite3/text_factory.py @ 78069:a8aa77458e12 3.2

Add c_size_t and c_ssize_t to the ctypes summary table.
author Antoine Pitrou <solipsis@pitrou.net>
date Thu, 12 Jul 2012 20:31:50 +0200
parents 9eb77d455be1
children ba5b337ecc27
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
42604
9e1529bf0442 Move the 3k reST doc tree in place.
Georg Brandl <georg@python.org>
parents:
diff changeset
1 import sqlite3
9e1529bf0442 Move the 3k reST doc tree in place.
Georg Brandl <georg@python.org>
parents:
diff changeset
2
9e1529bf0442 Move the 3k reST doc tree in place.
Georg Brandl <georg@python.org>
parents:
diff changeset
3 con = sqlite3.connect(":memory:")
9e1529bf0442 Move the 3k reST doc tree in place.
Georg Brandl <georg@python.org>
parents:
diff changeset
4 cur = con.cursor()
9e1529bf0442 Move the 3k reST doc tree in place.
Georg Brandl <georg@python.org>
parents:
diff changeset
5
9e1529bf0442 Move the 3k reST doc tree in place.
Georg Brandl <georg@python.org>
parents:
diff changeset
6 AUSTRIA = "\xd6sterreich"
9e1529bf0442 Move the 3k reST doc tree in place.
Georg Brandl <georg@python.org>
parents:
diff changeset
7
9e1529bf0442 Move the 3k reST doc tree in place.
Georg Brandl <georg@python.org>
parents:
diff changeset
8 # by default, rows are returned as Unicode
9e1529bf0442 Move the 3k reST doc tree in place.
Georg Brandl <georg@python.org>
parents:
diff changeset
9 cur.execute("select ?", (AUSTRIA,))
9e1529bf0442 Move the 3k reST doc tree in place.
Georg Brandl <georg@python.org>
parents:
diff changeset
10 row = cur.fetchone()
9e1529bf0442 Move the 3k reST doc tree in place.
Georg Brandl <georg@python.org>
parents:
diff changeset
11 assert row[0] == AUSTRIA
9e1529bf0442 Move the 3k reST doc tree in place.
Georg Brandl <georg@python.org>
parents:
diff changeset
12
54339
699da6c467dc Merged revisions 72661,72675-72677,72679,72712,72801,72820 via svnmerge from
Georg Brandl <georg@python.org>
parents: 42604
diff changeset
13 # but we can make sqlite3 always return bytestrings ...
74959
9eb77d455be1 Issue #13491: Fix many errors in sqlite3 documentation
Petri Lehtinen <petri@digip.org>
parents: 55580
diff changeset
14 con.text_factory = bytes
42604
9e1529bf0442 Move the 3k reST doc tree in place.
Georg Brandl <georg@python.org>
parents:
diff changeset
15 cur.execute("select ?", (AUSTRIA,))
9e1529bf0442 Move the 3k reST doc tree in place.
Georg Brandl <georg@python.org>
parents:
diff changeset
16 row = cur.fetchone()
74959
9eb77d455be1 Issue #13491: Fix many errors in sqlite3 documentation
Petri Lehtinen <petri@digip.org>
parents: 55580
diff changeset
17 assert type(row[0]) is bytes
42604
9e1529bf0442 Move the 3k reST doc tree in place.
Georg Brandl <georg@python.org>
parents:
diff changeset
18 # the bytestrings will be encoded in UTF-8, unless you stored garbage in the
9e1529bf0442 Move the 3k reST doc tree in place.
Georg Brandl <georg@python.org>
parents:
diff changeset
19 # database ...
9e1529bf0442 Move the 3k reST doc tree in place.
Georg Brandl <georg@python.org>
parents:
diff changeset
20 assert row[0] == AUSTRIA.encode("utf-8")
9e1529bf0442 Move the 3k reST doc tree in place.
Georg Brandl <georg@python.org>
parents:
diff changeset
21
9e1529bf0442 Move the 3k reST doc tree in place.
Georg Brandl <georg@python.org>
parents:
diff changeset
22 # we can also implement a custom text_factory ...
74959
9eb77d455be1 Issue #13491: Fix many errors in sqlite3 documentation
Petri Lehtinen <petri@digip.org>
parents: 55580
diff changeset
23 # here we implement one that appends "foo" to all strings
9eb77d455be1 Issue #13491: Fix many errors in sqlite3 documentation
Petri Lehtinen <petri@digip.org>
parents: 55580
diff changeset
24 con.text_factory = lambda x: x.decode("utf-8") + "foo"
9eb77d455be1 Issue #13491: Fix many errors in sqlite3 documentation
Petri Lehtinen <petri@digip.org>
parents: 55580
diff changeset
25 cur.execute("select ?", ("bar",))
42604
9e1529bf0442 Move the 3k reST doc tree in place.
Georg Brandl <georg@python.org>
parents:
diff changeset
26 row = cur.fetchone()
74959
9eb77d455be1 Issue #13491: Fix many errors in sqlite3 documentation
Petri Lehtinen <petri@digip.org>
parents: 55580
diff changeset
27 assert row[0] == "barfoo"