From: Mike Bayer Date: Thu, 1 Jun 2006 15:55:52 +0000 (+0000) Subject: create_connect_args can create DSN from host/port, submitted by bernd.dorn@fhv.at... X-Git-Tag: rel_0_2_2~18 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=04c1d3f012b8e445c947e650d73ec44f207456c7;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git create_connect_args can create DSN from host/port, submitted by bernd.dorn@fhv.at for [ticket:192] --- diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py index b27f87dd03..0745cf7844 100644 --- a/lib/sqlalchemy/databases/oracle.py +++ b/lib/sqlalchemy/databases/oracle.py @@ -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):