如何查找特定于ODBC驱动程序的参数

问题描述 投票:5回答:1

是否可以通过编程方式>>发现ODBC连接的命名参数?

例如,使用“ SQL Server ODBC驱动程序17”,ODBC数据源管理器(在Windows中)允许使用“登录ID”和“密码”进行身份验证,但是当以编程方式进行连接时,我们需要使用[C0 ]和uid=。这两个配置点已在配置文档(例如pwd=)中明确列出,但是驱动程序支持的其他几个配置选项的文档较少或未记录。

(对于SQL Server,还有更多文档,包括https://db.rstudio.com/databases/microsoft-sql-server/,该文档列出了其他几个参数(尽管不是它们的可能值)。尽管对于驱动程序而言此页面尚未更新,但该文档适用于this

驱动程序。 17我们必须假设所有选项都保持不变。)

有一些编程的方法来了解可用的驱动程序以及可用的预定义数据源:

https://docs.microsoft.com/en-us/sql/connect/odbc/windows/driver-aware-connection-pooling-in-the-odbc-driver-for-sql-server?view=sql-server-ver15

但没有发现连接参数

的内容。也许类似于此不存在的功能:
odbc::odbcListDrivers()
#                             name        attribute value
# ...truncated...
# 33 ODBC Driver 17 for SQL Server       UsageCount     1
# 34 ODBC Driver 17 for SQL Server         APILevel     2
# 35 ODBC Driver 17 for SQL Server ConnectFunctions   YYY
# 36 ODBC Driver 17 for SQL Server        CPTimeout    60
# 37 ODBC Driver 17 for SQL Server    DriverODBCVer 03.80
# 38 ODBC Driver 17 for SQL Server        FileUsage     0
# 39 ODBC Driver 17 for SQL Server         SQLLevel     1

odbc::odbcListDataSources()
#                 name                   description
# 1             somedb ODBC Driver 17 for SQL Server
# 2 SQLite3 Datasource           SQLite3 ODBC Driver

((我在这里以SQL Server为例,但是我对更通用的方法感兴趣。由于我正在寻找编程机制,因此我希望避免建议阅读每个驱动程序的文档。)

((我不反对非R方法。)


一些非R的尝试无效。使用mssql odbc驱动程序库作为带有已知参数模式的示例。

discover_odbc_arguments("ODBC Driver 17 for SQL Server")
# [1] "Address"                "AnsiNPW"                "App"                   
# [4] "Database"               "Encrypt"                "PWD"                   
# [7] "Trusted_Connection"     "TrustServerCertificate" "UID"                   

是否可以通过编程方式发现ODBC连接的命名参数?例如,使用“用于SQL Server的ODBC驱动程序17”,ODBC数据源管理器(在Windows中)允许...

r odbc dbi nanodbc
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.