From 04c1d3f012b8e445c947e650d73ec44f207456c7 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Thu, 1 Jun 2006 15:55:52 +0000 Subject: [PATCH] create_connect_args can create DSN from host/port, submitted by bernd.dorn@fhv.at for [ticket:192] --- lib/sqlalchemy/databases/oracle.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) 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): -- 2.47.3