0

我无法理解尝试连接到 MS Access 数据库文件时遇到的错误

λ: :m + Database.HDBC Database.HDBC.ODBC
λ: let connectionString = "DBQ=c:\\Users\\user\\Desktop\\Database1.accdb;Driver={Microsoft Access Driver (*.mdb, *.accdb)};"
λ: conn <- connectODBC connectionString

*** Exception: SqlError {seState = "[]", seNativeError = -1, seErrorMsg = "sqlGetInfo SQL_TXN_CAPABLE: []"}
4

1 回答 1

1

我知道你了,伙计,即使迟到了也没用!

我刚刚遇到了这个确切的问题并分叉HDBC-odbc修复它。简而言之:他们“愚蠢地”信任 的 MSDN 文档SQLGetInfo,该文档声称对于非字符串信息类型(例如,查询时使用的BufferLength参数)或多或少地忽略了该参数。SQLUSMALLINTSQL_TXN_CAPABLE

好吧,至少对于 MS Access 驱动程序,这是不正确的。我调整了查询​​代码以实际通过sizeof(SQLUSMALLINT)而不是零,并且事情似乎正在工作。

HDBC-odbc可以在https://github.com/derrickturk/hdbc-odbc获得更新。我也打算提出一个拉取请求,但我不确定是否HDBC-odbc仍然保持不变。

在任何情况下,如果您使用stack,就像更改您的extra-depsinstack.yaml以包含(替换任何以前的来源HDBC-odbc)一样简单:

额外的部门:
  - 混帐:https://github.com/derrickturk/hdbc-odbc.git
    提交:99cbefb16defc9ce6de77c1434207a78b5c3c365
于 2018-07-21T19:43:24.473 回答