Skip to content

Commit 82da587

Browse files
committed
Connect to "ibm_db" - fix "user" and "password" params, which must be set empty, allow custom params in connection string (similar to pyodbc), "TCPIP" is no default protocol value anymore
1 parent 611b1d0 commit 82da587

File tree

1 file changed

+19
-4
lines changed

1 file changed

+19
-4
lines changed

src/DatabaseLibrary/connection_manager.py

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -389,10 +389,25 @@ def _arg_or_config(arg_value, param_name, *, old_param_name=None, mandatory=Fals
389389

390390
elif db_module in ["ibm_db", "ibm_db_dbi"]:
391391
db_port = db_port or 50000
392-
con_str = (
393-
f"DATABASE={db_name};HOSTNAME={db_host};PORT={db_port};PROTOCOL=TCPIP;UID={db_user};PWD={db_password};"
394-
)
395-
con_params = _build_connection_params(userID="", userPassword="")
392+
con_str = ""
393+
if db_name:
394+
con_str += f"DATABASE={db_name};"
395+
if db_user:
396+
con_str += f"UID={db_user};"
397+
if db_password:
398+
con_str += f"PWD={db_password};"
399+
if db_host:
400+
con_str += f"HOSTNAME={db_host};"
401+
if db_port:
402+
con_str += f"PORT={db_port};"
403+
404+
for param_name, param_value in custom_connection_params.items():
405+
con_str += f"{param_name}={param_value};"
406+
407+
for param_name, param_value in other_config_file_params.items():
408+
con_str += f"{param_name}={param_value};"
409+
410+
con_params = _build_connection_params(custom_params=False, user="", password="")
396411
_log_all_connection_params(connection_string=con_str, **con_params)
397412
db_connection = db_api_2.connect(con_str, **con_params)
398413

0 commit comments

Comments
 (0)