]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
create_connect_args can create DSN from host/port, submitted by bernd.dorn@fhv.at...
authorMike Bayer <mike_mp@zzzcomputing.com>
Thu, 1 Jun 2006 15:55:52 +0000 (15:55 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Thu, 1 Jun 2006 15:55:52 +0000 (15:55 +0000)
lib/sqlalchemy/databases/oracle.py

index b27f87dd03e06e1a18cfd0ff620c553db11e7a20..0745cf784436c4420c7e34845312cef7f00d70f5 100644 (file)
@@ -123,8 +123,19 @@ class OracleDialect(ansisql.ANSIDialect):
         return self.module
 
     def create_connect_args(self, url):
-        opts = url.translate_connect_args([None, 'dsn', 'user', 'password'])
-        opts['threaded'] = self.threaded
+        if url.database:
+            # if we have a database, then we have a remote host
+            port = url.port or 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):