如何查找ODBC驱动程序特定的参数 [英] how to find ODBC driver-specific arguments

查看:35
本文介绍了如何查找ODBC驱动程序特定的参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有办法以编程方式发现ODBC连接的命名参数?

例如,使用"用于SQL Server的ODBC驱动程序17",ODBC数据源管理器(在Windows中)允许使用"Login ID"和"Password"进行身份验证,但是在以编程方式连接时,我们需要分别使用uid=pwd=。配置文档中清楚地列出了这两个配置点(例如,https://db.rstudio.com/databases/microsoft-sql-server/),但驱动程序支持的其他几个配置选项的文档记录较少或未记录。

(对于SQL Server,包括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在内的更多文档列出了其他几个参数(尽管不是它们可能的值)。这适用于驱动程序,但由于此页尚未为驱动程序17更新,因此我们必须假设所有选项均未更改。)

可以通过编程方式了解哪些驱动程序可用,以及哪些预定义的数据源可用:

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

但没有发现连接参数。可能类似于此不存在的函数:

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

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

(我不反对非R方法。)


一些不起作用的非R尝试。使用MSSQL ODBC驱动程序库作为已知参数模式的示例。

$ strings /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.5.so.2.1  
  | egrep -i 'Trusted.Conn|AnsiDPW|TrustServer'
### <no output>
$ grep -rli 'Trusted.Conn|AnsiDPW|TrustServer' /opt/microsoft/msodbcsql17/
### <no output>

ODBC

您需要以某种方式调用SQLBrowseConnect函数来获取特定推荐答案驱动程序或dsn的所有可用的连接字符串参数。不幸的是,正如我所看到的,这个调用没有在R ODBC包中实现。有关详细信息,请参阅链接上的文档和示例代码。

这篇关于如何查找ODBC驱动程序特定的参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆