diff options
author | Rick Morrison <rickmorrison@gmail.com> | 2008-03-31 21:54:32 +0000 |
---|---|---|
committer | Rick Morrison <rickmorrison@gmail.com> | 2008-03-31 21:54:32 +0000 |
commit | 58b3f3aa9adfbd5d99badcc43c3280c875d57dcd (patch) | |
tree | afbf536a844d76ccc08d701bf8803a01df2aaf70 /lib/sqlalchemy/databases/mssql.py | |
parent | 128ee627e1ac6b73f87195cf51d2ce00fb144cb9 (diff) | |
download | sqlalchemy-58b3f3aa9adfbd5d99badcc43c3280c875d57dcd.tar.gz |
MSSQL adjustments to pyodbc connection string building
Diffstat (limited to 'lib/sqlalchemy/databases/mssql.py')
-rw-r--r-- | lib/sqlalchemy/databases/mssql.py | 43 |
1 files changed, 5 insertions, 38 deletions
diff --git a/lib/sqlalchemy/databases/mssql.py b/lib/sqlalchemy/databases/mssql.py index c8551407b..1c4a2c286 100644 --- a/lib/sqlalchemy/databases/mssql.py +++ b/lib/sqlalchemy/databases/mssql.py @@ -741,38 +741,6 @@ class MSSQLDialect_pymssql(MSSQLDialect): def is_disconnect(self, e): return isinstance(e, self.dbapi.DatabaseError) and "Error 10054" in str(e) - -## This code is leftover from the initial implementation, for reference -## def do_begin(self, connection): -## """implementations might want to put logic here for turning autocommit on/off, etc.""" -## pass - -## def do_rollback(self, connection): -## """implementations might want to put logic here for turning autocommit on/off, etc.""" -## try: -## # connection.rollback() for pymmsql failed sometimes--the begin tran doesn't show up -## # this is a workaround that seems to be handle it. -## r = self.raw_connection(connection) -## r.query("if @@trancount > 0 rollback tran") -## r.fetch_array() -## r.query("begin tran") -## r.fetch_array() -## except: -## pass - -## def do_commit(self, connection): -## """implementations might want to put logic here for turning autocommit on/off, etc. -## do_commit is set for pymmsql connections--ADO seems to handle transactions without any issue -## """ -## # ADO Uses Implicit Transactions. -## # This is very pymssql specific. We use this instead of its commit, because it hangs on failed rollbacks. -## # By using the "if" we don't assume an open transaction--much better. -## r = self.raw_connection(connection) -## r.query("if @@trancount > 0 commit tran") -## r.fetch_array() -## r.query("begin tran") -## r.fetch_array() - class MSSQLDialect_pyodbc(MSSQLDialect): supports_sane_rowcount = False supports_sane_multi_rowcount = False @@ -788,7 +756,6 @@ class MSSQLDialect_pyodbc(MSSQLDialect): self.use_scope_identity = hasattr(pyodbc.Cursor, 'nextset') except: pass - self.drivername = params.get('driver', 'SQL Server') def import_dbapi(cls): import pyodbc as module @@ -811,12 +778,12 @@ class MSSQLDialect_pyodbc(MSSQLDialect): if 'dsn' in keys: connectors = ['dsn=%s' % keys['dsn']] else: - connectors = ["DRIVER={%s}" % self.drivername] + connectors = ["DRIVER={%s}" % keys.get('driver', 'SQL Server'), + 'Server=%s' % keys['host'], + 'Database=%s' % keys['database'] ] if 'port' in keys: - connectors.append('Server=%s,%d' % (keys.get('host'), keys.get('port'))) - else: - connectors.append('Server=%s' % keys.get('host')) - connectors.append("Database=%s" % keys.get("database")) + connectors.append('Port=%d' % int(keys['port'])) + user = keys.get("user") if user: connectors.append("UID=%s" % user) |