标签: nanodbc

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

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

例如,使用“ODBC Driver 17 for SQL Server”,ODBC 数据源管理器(在 Windows 中)允许使用“登录 ID”和“密码”进行身份验证,但是在以编程方式连接时,我们需要分别使用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 …
Run Code Online (Sandbox Code Playgroud)

odbc r dbi nanodbc

11
推荐指数
1
解决办法
684
查看次数

R DBI ODBC错误:nanodbc / nanodbc.cpp:3110:07009:[Microsoft] [用于SQL Server的ODBC驱动程序13]无效的描述符索引

我继续阅读的DBI/ODBC速度比快RODBC,因此我尝试如下:

require(DBI);require(odbc)
con <- DBI::dbConnect(odbc::odbc(), dsn = 'SQLSERVER1', database = 'AcumaticaDB')
Run Code Online (Sandbox Code Playgroud)

我可以成功连接到DSN,但执行以下查询:

rs <- dbGetQuery(con, "SELECT * FROM inventoryitem")
dbFetch(rs)
Run Code Online (Sandbox Code Playgroud)

给我以下错误:

result_fetch(res @ ptr,n,...)中的错误:nanodbc / nanodbc.cpp:3110:07009:[Microsoft] [用于SQL Server的ODBC驱动程序13]无效的描述符索引

我究竟做错了什么 ?请,没有RODBC解决方案。谢谢!

sql-server odbc r r-dbi nanodbc

6
推荐指数
4
解决办法
5057
查看次数

标签 统计

nanodbc ×2

odbc ×2

r ×2

dbi ×1

r-dbi ×1

sql-server ×1