]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
confirmed that makedsn works with host/port/sid
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 2 Jun 2006 23:05:33 +0000 (23:05 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 2 Jun 2006 23:05:33 +0000 (23:05 +0000)
lib/sqlalchemy/databases/oracle.py

index a1aa09d4ef6c87da55eb35dd7f57875db57482aa..f6a819ebbf2b41c847c95ee86f786409804988f9 100644 (file)
@@ -123,8 +123,23 @@ class OracleDialect(ansisql.ANSIDialect):
         return self.module
 
     def create_connect_args(self, url):
-        opts = url.translate_connect_args(['dsn', None, 'user', 'password'])
-        opts['threaded'] = self.threaded
+        if url.database:
+            # if we have a database, then we have a remote host
+            port = url.port
+            if port:
+                port = int(port)
+            else:
+                port = 1521
+            dsn = self.module.makedsn(url.host,port,url.database)
+        else:
+            # we have a local tnsname
+           dsn = url.host
+        opts = dict(
+            user=url.username,
+            password=url.password,
+            dsn = dsn,
+            threaded = self.threaded
+            )
         return ([], opts)
         
     def type_descriptor(self, typeobj):