HDBC-ODBC with MS Access 2016



我无法理解我尝试连接到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: []"}

我得到了你,哥们,即使它可能毫无用处!

我只是点击了这个确切的问题,然后分叉HDBC-odbc来修复它。简而言之:他们"愚蠢地"信任SQLGetInfo的MSDN文档,该文档声称BufferLength参数在非弦乐信息类型中被忽略或无忽略(例如,查询SQL_TXN_CAPABLE时使用的SQLUSMALLINT)。

好吧,至少在MS Access驱动程序的情况下,事实并非如此。我对查询代码进行了调整以实际通过sizeof(SQLUSMALLINT)而不是零,而且事情似乎在起作用。

可以在https://github.com/derrickturk/hdbc-odbc上使用更新的HDBC-odbc。我也打算也提出拉动请求,但我不确定是否仍保持HDBC-odbc

在任何情况下,如果使用stack,它就像在stack.yaml中更改extra-deps一样容易,以包括(替换任何以前的HDBC-odbc来源):

额外deps:  -git:https://github.com/derrickturk/hdbc-odbc.git    提交:99CBEFB16DEFC9CE6DE77C1434207A78B5C3C365

相关内容

  • 没有找到相关文章

最新更新