diff --git a/.vscode/settings.json b/.vscode/settings.json index 65332e6..3bae561 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,4 +9,10 @@ "--output", "${workspaceRoot}/logs/interactive_console.xml" ], "python.analysis.completeFunctionParens": true, + "cSpell.words": [ + "hana", + "hdbodbc", + "saphana", + "SERVERNODE" + ], } \ No newline at end of file diff --git a/src/DatabaseLibrary/connection_manager.py b/src/DatabaseLibrary/connection_manager.py index 5710253..87926ab 100644 --- a/src/DatabaseLibrary/connection_manager.py +++ b/src/DatabaseLibrary/connection_manager.py @@ -391,10 +391,14 @@ def _arg_or_config(arg_value, param_name, *, old_param_name=None, mandatory=Fals if db_charset: con_str += f"charset={db_charset};" if db_host and db_port: - if odbc_driver and "mysql" in odbc_driver.lower(): - con_str += f"SERVER={db_host}:{db_port};" - else: - con_str += f"SERVER={db_host},{db_port};" + con_str_server = f"SERVER={db_host},{db_port};" # default for most databases + if odbc_driver: + driver_lower = odbc_driver.lower() + if "mysql" in driver_lower: + con_str_server = f"SERVER={db_host}:{db_port};" + elif "saphana" in driver_lower or "hdbodbc" in driver_lower or "sap hana" in driver_lower: + con_str_server = f"SERVERNODE={db_host}:{db_port};" + con_str += con_str_server for param_name, param_value in custom_connection_params.items(): con_str += f"{param_name}={param_value};"