【发布时间】:2020-03-17 13:31:01
【问题描述】:
我的 Windows 10 机器上安装了 64 位 R,版本 3.6.0。
我使用以下代码在我的机器上建立与本地 MySQL 数据库的连接
library(DBI)
con <- dbConnect( odbc::odbc(),"my_dsn")
其中my_dsn 是 ODBC 数据源管理器中定义的 MySQL 数据库的 64 位系统 DSN。
在新的 R Studio 或 R GUI 会话中执行此代码可以正常工作并提供预期的连接对象。所以我将代码保存到C:/some_folder_location/my_script.R 的R 脚本中。
现在我想从批处理文件中调用脚本。批处理文件包含以下代码:
cd /d C:\some_folder\
"C:\Program Files\R\R-3.6.0\bin\i386\Rscript.exe" my_script.R
pause
当我执行批处理文件时,出现以下错误:
错误:nanodbc/nanodbc.cpp:950: IM014: [Microsoft][ODBC 驱动程序 Manager] 指定的 DSN 包含之间的体系结构不匹配 驱动程序和应用程序
执行停止
所以我的问题是,为什么这段代码在批处理文件执行时突然不起作用?错误消息似乎是说 DSN 存在问题,但我们知道事实并非如此,因为脚本直接从控制台运行没有问题。
【问题讨论】: