summaryrefslogtreecommitdiffstats
path: root/Doc/lib/sqlite3/converter_point.py
diff options
context:
space:
mode:
authorGerhard Häring <gh@ghaering.de>2006-05-01 15:14:48 (GMT)
committerGerhard Häring <gh@ghaering.de>2006-05-01 15:14:48 (GMT)
commit82560ebb8d2472be5a916a6013deff89781b452d (patch)
tree9c45300b8f53df02cc1ae84c18e11db7fd264d97 /Doc/lib/sqlite3/converter_point.py
parente3c958c33badaff340ee8dcf2c5f64aaa87ffda4 (diff)
downloadcpython-82560ebb8d2472be5a916a6013deff89781b452d.zip
cpython-82560ebb8d2472be5a916a6013deff89781b452d.tar.gz
cpython-82560ebb8d2472be5a916a6013deff89781b452d.tar.bz2
Further integration of the documentation for the sqlite3 module. There's still
quite some content to move over from the pysqlite manual, but it's a start now.
Diffstat (limited to 'Doc/lib/sqlite3/converter_point.py')
-rw-r--r--Doc/lib/sqlite3/converter_point.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/Doc/lib/sqlite3/converter_point.py b/Doc/lib/sqlite3/converter_point.py
new file mode 100644
index 0000000..eecd1dc3
--- /dev/null
+++ b/Doc/lib/sqlite3/converter_point.py
@@ -0,0 +1,47 @@
+import sqlite3
+
+class Point(object):
+ def __init__(self, x, y):
+ self.x, self.y = x, y
+
+ def __repr__(self):
+ return "(%f;%f)" % (self.x, self.y)
+
+def adapt_point(point):
+ return "%f;%f" % (point.x, point.y)
+
+def convert_point(s):
+ x, y = map(float, s.split(";"))
+ return Point(x, y)
+
+# Register the adapter
+sqlite3.register_adapter(Point, adapt_point)
+
+# Register the converter
+sqlite3.register_converter("point", convert_point)
+
+p = Point(4.0, -3.2)
+
+#########################
+# 1) Using declared types
+con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_DECLTYPES)
+cur = con.cursor()
+cur.execute("create table test(p point)")
+
+cur.execute("insert into test(p) values (?)", (p,))
+cur.execute("select p from test")
+print "with declared types:", cur.fetchone()[0]
+cur.close()
+con.close()
+
+#######################
+# 1) Using column names
+con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_COLNAMES)
+cur = con.cursor()
+cur.execute("create table test(p)")
+
+cur.execute("insert into test(p) values (?)", (p,))
+cur.execute('select p as "p [point]" from test')
+print "with column names:", cur.fetchone()[0]
+cur.close()
+con.close()