]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- All pyodbc-dialects now support extra pyodbc-specific
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 18 Dec 2009 18:55:14 +0000 (18:55 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 18 Dec 2009 18:55:14 +0000 (18:55 +0000)
kw arguments 'ansi', 'unicode_results', 'autocommit'.
[ticket:1621]

CHANGES
lib/sqlalchemy/connectors/pyodbc.py

diff --git a/CHANGES b/CHANGES
index 7b5a25031cc668af1e5ff824833f4dc0ac5b7c2a..bebcf8043dcfaf41ed0317af275c6d8fe66cf8f4 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -308,6 +308,10 @@ CHANGES
     as invalidated connections, DEBUG for all the acquire/return
     logging.  `echo_pool` can be False, None, True or "debug"
     the same way as `echo` works.
+  
+  - All pyodbc-dialects now support extra pyodbc-specific 
+    kw arguments 'ansi', 'unicode_results', 'autocommit'.
+    [ticket:1621]
     
   - deprecated or removed
       * result.last_inserted_ids() is deprecated.  Use 
index ebe28c6829c52cbd25da98e27869ab603e661019..30a7f98d02a644ca8e36b39eb82df7add385fc7f 100644 (file)
@@ -1,4 +1,5 @@
 from sqlalchemy.connectors import Connector
+from sqlalchemy.util import asbool
 
 import sys
 import re
@@ -28,6 +29,11 @@ class PyODBCConnector(Connector):
         keys = opts
         query = url.query
 
+        connect_args = {}
+        for param in ('ansi', 'unicode_results', 'autocommit'):
+            if param in keys:
+                connect_args[param] = asbool(keys.pop(param))
+
         if 'odbc_connect' in keys:
             connectors = [urllib.unquote_plus(keys.pop('odbc_connect'))]
         else:
@@ -58,8 +64,8 @@ class PyODBCConnector(Connector):
                 connectors.append("AutoTranslate=%s" % keys.pop("odbc_autotranslate"))
 
             connectors.extend(['%s=%s' % (k,v) for k,v in keys.iteritems()])
-        return [[";".join (connectors)], {}]
-
+        return [[";".join (connectors)], connect_args]
+        
     def is_disconnect(self, e):
         if isinstance(e, self.dbapi.ProgrammingError):
             return "The cursor's connection has been closed." in str(e) or 'Attempt to use a closed connection.' in str(e)