我正在尝试使用 R 以编程方式连接到我工厂的 Aspen InfoPlus21 服务器:
library(DBI)
library(odbc)
sql = "select * from IP_AnalogDef"
con <- dbConnect(odbc(), "[server name]")
rs = dbSendQuery(con, sql)
此代码成功创建了与服务器的 ODBC 连接,我可以在 Rstudio 的“连接”选项卡中看到该连接。我可以打开连接并查看服务器内的所有表定义,IP_AnalogDef、IP_TextDef、IP_DiscreteDef 等。但是,dbSendQuery 语句导致以下错误:
Error: nanodbc/nanodbc.cpp:1655: EX001: Optional feature not implemented
无论使用什么 SQL 代码,只要它是有效的 SQL 代码,我都会收到此错误。如果我单击 Rstudio 的 Connections 选项卡中的表(它只是自动生成 SQL“Select * from [whatever table I click on]),我会收到相同的错误以及一个显示“R 代码执行错误”的对话框。
我可以通过 ODBC 连接成功地将数据连接并查询到 Excel - 获取数据 > 从其他来源 > 从 ODBC > [服务器名称] > 高级选项 > SQL 语句:“从 IP_AnalogDef 中选择 *”所以这似乎是一个问题我将 R 连接到 IP21。连接的正确语法是什么?我为 python 找到了这个示例,但无法弄清楚我在使用 R 时做错了什么。
使用 Aspen v11。