summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/informix/informixdb.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-10-01 21:26:05 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2010-10-01 21:26:05 -0400
commit761b4f29e295cfaa774a9a2fec713f9055548387 (patch)
tree8b350a8a40e443157055faba532a62ba7b9048c7 /lib/sqlalchemy/dialects/informix/informixdb.py
parent4557fd5a9af9ad4d93ab1eacef4b7e059bb10dc3 (diff)
downloadsqlalchemy-761b4f29e295cfaa774a9a2fec713f9055548387.tar.gz
- *Major* cleanup / modernization of the Informix
dialect for 0.6, courtesy Florian Apolloner. [ticket:1906]
Diffstat (limited to 'lib/sqlalchemy/dialects/informix/informixdb.py')
-rw-r--r--lib/sqlalchemy/dialects/informix/informixdb.py37
1 files changed, 27 insertions, 10 deletions
diff --git a/lib/sqlalchemy/dialects/informix/informixdb.py b/lib/sqlalchemy/dialects/informix/informixdb.py
index 8edcc953b..f11c57bb6 100644
--- a/lib/sqlalchemy/dialects/informix/informixdb.py
+++ b/lib/sqlalchemy/dialects/informix/informixdb.py
@@ -1,16 +1,38 @@
+"""
+Support for the informixdb DBAPI.
+
+informixdb is available at:
+
+ http://informixdb.sourceforge.net/
+
+Connecting
+^^^^^^^^^^
+
+Sample informix connection::
+
+ engine = create_engine('informix+informixdb://user:password@host/dbname')
+
+"""
+
+import re
+
from sqlalchemy.dialects.informix.base import InformixDialect
from sqlalchemy.engine import default
+VERSION_RE = re.compile(r'(\d+)\.(\d+)(.+\d+)')
+
class InformixExecutionContext_informixdb(default.DefaultExecutionContext):
def post_exec(self):
if self.isinsert:
- self._lastrowid = [self.cursor.sqlerrd[1]]
+ self._lastrowid = self.cursor.sqlerrd[1]
+
+ def get_lastrowid(self):
+ return self._lastrowid
class InformixDialect_informixdb(InformixDialect):
driver = 'informixdb'
- default_paramstyle = 'qmark'
- execution_context_cls = InformixExecutionContext_informixdb
+ execution_ctx_cls = InformixExecutionContext_informixdb
@classmethod
def dbapi(cls):
@@ -31,13 +53,8 @@ class InformixDialect_informixdb(InformixDialect):
def _get_server_version_info(self, connection):
# http://informixdb.sourceforge.net/manual.html#inspecting-version-numbers
- version = []
- for n in connection.connection.dbms_version.split('.'):
- try:
- version.append(int(n))
- except ValueError:
- version.append(n)
- return tuple(version)
+ v = VERSION_RE.split(connection.connection.dbms_version)
+ return (int(v[1]), int(v[2]), v[3])
def is_disconnect(self, e):
if isinstance(e, self.dbapi.OperationalError):