Skip to content

Commit 7c4ceba

Browse files
committed
#181 different syntax for pyodbc connection string based on SQL driver - SQL Server drivers use a comma between server and port, others - a colon
1 parent 190d886 commit 7c4ceba

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/DatabaseLibrary/connection_manager.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,15 @@ def connect_to_database(self, dbapiModuleName=None, dbName=None, dbUsername=None
105105
self._dbconnection = db_api_2.connect(database=dbName, user=dbUsername, password=dbPassword, host=dbHost, port=dbPort)
106106
elif dbapiModuleName in ["pyodbc", "pypyodbc"]:
107107
dbPort = dbPort or 1433
108-
dbDriver = dbDriver or "{SQL Server}"
109108
dbCharset = dbCharset or 'utf8mb4'
110-
logger.info('Connecting using : %s.connect(DRIVER=%s;SERVER=%s,%s;DATABASE=%s;UID=%s;PWD=***;charset=%s)' % (dbapiModuleName, dbDriver, dbHost, dbPort, dbName, dbUsername, dbCharset))
111-
self._dbconnection = db_api_2.connect('DRIVER=%s;SERVER=%s,%s;DATABASE=%s;UID=%s;PWD=%s;charset=%s' % (dbDriver, dbHost, dbPort, dbName, dbUsername, dbPassword, dbCharset))
109+
dbDriver = dbDriver or "{SQL Server}"
110+
con_str = f"DRIVER={dbDriver};DATABASE={dbName};UID={dbUsername};PWD={dbPassword};charset={dbCharset};"
111+
if "mysql" in dbDriver.lower():
112+
con_str += f"SERVER={dbHost}:{dbPort}"
113+
else:
114+
con_str += f"SERVER={dbHost},{dbPort}"
115+
logger.info(f'Connecting using : {dbapiModuleName}.connect({con_str.replace(dbPassword, "***")})')
116+
self._dbconnection = db_api_2.connect(con_str)
112117
elif dbapiModuleName in ["excel"]:
113118
logger.info(
114119
'Connecting using : %s.connect(DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=%s;ReadOnly=1;Extended Properties="Excel 8.0;HDR=YES";)' % (

0 commit comments

Comments
 (0)