+# Copyright (C) 2005-2012 the SQLAlchemy authors and contributors <see AUTHORS file>
+# This module is part of SQLAlchemy and is released under
+# the MIT License: http://www.opensource.org/licenses/mit-license.php
+fdb is a kinterbasdb compatible DBAPI for Firebird.
+Usage is currently the same as that of kinterbasdb, with the exception
+of the connect string below.
+.. versionadded:: 0.8 - Support for the fdb Firebird driver.
+The fdb dialect is new and not yet tested (can't get fdb to build).
+from .kinterbasdb import FBDialect_kinterbasdb
+ return __import__('fdb')
+ def create_connect_args(self, url):
+ opts = url.translate_connect_args(username='user')
+ opts['host'] = "%s/%s" % (opts['host'], opts['port'])
+ util.coerce_kw_type(opts, 'type_conv', int)
+ def _get_server_version_info(self, connection):
+ """Get the version of the Firebird server used by a connection.
+ Returns a tuple of (`major`, `minor`, `build`), three integers
+ representing the version of the attached server.
+ # This is the simpler approach (the other uses the services api),
+ # that for backward compatibility reasons returns a string like
+ # LI-V22.214.171.12481 Firebird 2.0
+ # where the first version is a fake one resembling the old
+ isc_info_firebird_version = 103
+ fbconn = connection.connection
+ version = fbconn.db_info(isc_info_firebird_version)
+ return self._parse_version_info(version)