From: Mike Bayer Date: Fri, 2 Jun 2006 23:05:33 +0000 (+0000) Subject: confirmed that makedsn works with host/port/sid X-Git-Tag: rel_0_2_2~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4bbbe40dadc7357c54f60c293e1b324e4330803e;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git confirmed that makedsn works with host/port/sid --- diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py index a1aa09d4ef..f6a819ebbf 100644 --- a/lib/sqlalchemy/databases/oracle.py +++ b/lib/sqlalchemy/databases/oracle.py @@ -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):