Skip to content

Commit 516fb35

Browse files
amochinRaffaeleDV
andauthored
Support SAP HANA via ODBC - user "SERVERNODE" parameter in connection string (#236)
* Change server string in ODBC Driver for SAPHANA * Proper parameters for SAP HANA --------- Co-authored-by: Raffaele Della Valle <[email protected]>
1 parent 888b529 commit 516fb35

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

.vscode/settings.json

+6
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,10 @@
99
"--output", "${workspaceRoot}/logs/interactive_console.xml"
1010
],
1111
"python.analysis.completeFunctionParens": true,
12+
"cSpell.words": [
13+
"hana",
14+
"hdbodbc",
15+
"saphana",
16+
"SERVERNODE"
17+
],
1218
}

src/DatabaseLibrary/connection_manager.py

+8-4
Original file line numberDiff line numberDiff line change
@@ -391,10 +391,14 @@ def _arg_or_config(arg_value, param_name, *, old_param_name=None, mandatory=Fals
391391
if db_charset:
392392
con_str += f"charset={db_charset};"
393393
if db_host and db_port:
394-
if odbc_driver and "mysql" in odbc_driver.lower():
395-
con_str += f"SERVER={db_host}:{db_port};"
396-
else:
397-
con_str += f"SERVER={db_host},{db_port};"
394+
con_str_server = f"SERVER={db_host},{db_port};" # default for most databases
395+
if odbc_driver:
396+
driver_lower = odbc_driver.lower()
397+
if "mysql" in driver_lower:
398+
con_str_server = f"SERVER={db_host}:{db_port};"
399+
elif "saphana" in driver_lower or "hdbodbc" in driver_lower or "sap hana" in driver_lower:
400+
con_str_server = f"SERVERNODE={db_host}:{db_port};"
401+
con_str += con_str_server
398402

399403
for param_name, param_value in custom_connection_params.items():
400404
con_str += f"{param_name}={param_value};"

0 commit comments

Comments
 (0)