如何调试通过ODBC访问mdb数据库时的R致命错误

How to debug R fatal error when accessing mdb-database via ODBC

提问人:Mats_B 提问时间:6/20/2023 更新时间:7/6/2023 访问量:32

问:

当我运行下面的代码时,我收到此消息。

R 会话已中止。 R 遇到致命错误。 会话已终止。 启动新会话。

消息在 5-10 秒后出现。我有MS Access版本16.00.16501.2009(ACEODBC.dll)的64位ODBC驱动程序。我使用Microsoft 365 64位(Office)。我有 Windows 11 家庭版。我运行 RStudio 2023.06.0 Build 421。我有 R 版本 4.3.0 (2023-04-21 ucrt) -- “已经明天了”。今天更新了所有内容,包括 R 包。如果我快点,我可以连接到数据库文件并从数据库中的表中获取记录(例如,在下面的代码中,来自表站的 14000 条记录),但是大约 5-10 秒后,我得到“R 遇到致命错误”如上所述。在这几秒钟内,我无法断开连接。奇怪的是,我已经设法让它在相同的配置下正常工作一次。该代码在我的旧计算机(32 位 R、Office 等)上运行多年,没有问题。

如果我在 R 控制台 (RGui) 中运行相同的脚本,整个 RGui 将崩溃并消失。我用于测试的代码片段就是这个:

library(RODBC)
mdbConnect<-odbcConnectAccess2007("file.mdb")
sql<-"SELECT * from station"
u<-sqlQuery(mdbConnect, sql)
odbcCloseAll()

我已经测试过在没有 RODBC 的情况下直接使用包 DBI 和 ODBC,但发生了完全相同的错误。

关于如何解决问题或如何调试以找出问题所在的任何想法,我们将不胜感激!

r odbc rodbc

评论


答:

0赞 Mats_B 7/6/2023 #1

在 2023 年 7 月 3 日安装 Windows 更新后,问题KB5027303消失了。