使用我的 qodbc API 中的关键字参数参数化 pyodbc 连接字符串?
Parameterize pyodbc connect string using keyword arguments from my qodbc API?
帮助我了解我是否可以为 QuickBooks 的 pyodbc
connection to this qodbc
接口参数化我的连接字符串:
pyodbc.connect(r'DSN=qremote_dsn;IPAddress=192.168.0.50;Port=4500;RemoteDSN=login_dsn;OpenMode=F;OLE DB Services=-2;', autocommit=True)
我有几个不同的 DSN、RemoteDSN 和服务器,我想循环访问它们。几个 SO 帖子(here and here) point to this code.google documentation 建议我可以使用 字符串、关键字或两者 和 pyodbc 的 connect
函数。
pyodbc 使用许多不同的 odbc API,那么如何确定 any pyodbc 关键字是否会映射到我需要的 qodbc 关键字?
我在pyodbc documentationreturns中搜索qodbc
关键字没有结果。我必须断定 f 弦是我唯一的选择吗?
Must I conclude f-strings are my only option?
完全没有。
pyodbc 是为处理 any ODBC 驱动程序而构建的,因此它不会识别哪些关键字是 "legal" 哪些不是。正如所解释的 here 有一些关键字是由 DBAPI 规范指定的,还有一些保留给 pyodbc 内部使用的关键字,它们 "are not passed to the odbc driver" 暗示其他关键字 被 传递给 ODBC 驱动程序。
示例:当我使用此 connect
调用时...
cnxn = pyodbc.connect(
driver="ODBC Driver 17 for SQL Server",
server="192.168.0.179,49242",
database="myDb",
uid="sa", pwd="_whatever_",
trusted_connection="no"
)
...ODBC 跟踪显示这是传递给驱动程序的连接字符串
[ODBC][2404][1589493655.363466][SQLDriverConnectW.c][290]
Entry:
Connection = 0xf7d9c0
Window Hdl = (nil)
Str In = [driver=ODBC Driver 17 for SQL Server;server=192.168.0.179,49242;database=myDb;uid=sa;pwd=_whatever_;trusted_connection=no;][length = 122 (SQL_NTS)]
请注意 trusted_connection
特定于 SQL 服务器。
帮助我了解我是否可以为 QuickBooks 的 pyodbc
connection to this qodbc
接口参数化我的连接字符串:
pyodbc.connect(r'DSN=qremote_dsn;IPAddress=192.168.0.50;Port=4500;RemoteDSN=login_dsn;OpenMode=F;OLE DB Services=-2;', autocommit=True)
我有几个不同的 DSN、RemoteDSN 和服务器,我想循环访问它们。几个 SO 帖子(here and here) point to this code.google documentation 建议我可以使用 字符串、关键字或两者 和 pyodbc 的 connect
函数。
pyodbc 使用许多不同的 odbc API,那么如何确定 any pyodbc 关键字是否会映射到我需要的 qodbc 关键字?
我在pyodbc documentationreturns中搜索qodbc
关键字没有结果。我必须断定 f 弦是我唯一的选择吗?
Must I conclude f-strings are my only option?
完全没有。
pyodbc 是为处理 any ODBC 驱动程序而构建的,因此它不会识别哪些关键字是 "legal" 哪些不是。正如所解释的 here 有一些关键字是由 DBAPI 规范指定的,还有一些保留给 pyodbc 内部使用的关键字,它们 "are not passed to the odbc driver" 暗示其他关键字 被 传递给 ODBC 驱动程序。
示例:当我使用此 connect
调用时...
cnxn = pyodbc.connect(
driver="ODBC Driver 17 for SQL Server",
server="192.168.0.179,49242",
database="myDb",
uid="sa", pwd="_whatever_",
trusted_connection="no"
)
...ODBC 跟踪显示这是传递给驱动程序的连接字符串
[ODBC][2404][1589493655.363466][SQLDriverConnectW.c][290]
Entry:
Connection = 0xf7d9c0
Window Hdl = (nil)
Str In = [driver=ODBC Driver 17 for SQL Server;server=192.168.0.179,49242;database=myDb;uid=sa;pwd=_whatever_;trusted_connection=no;][length = 122 (SQL_NTS)]
请注意 trusted_connection
特定于 SQL 服务器。