我正在尝试通过 unixODBC 和 freetds 使用 hdbc-odbc 连接到 Sybase 数据库。以下几行应该打开一个连接,准备一个查询,执行它并断开连接。
conn <- connectODBC connectionString
statement <- prepare conn $ queryString query
execute statement []
dataSet <- fetchAllRowsMap' statement
disconnect conn
return dataSet
结果是,然而SqlError {seState = "[]", seNativeError = -2, seErrorMsg = "SQLRowCount: []"}
然而,以下代码有效:
conn <- connectODBC connectionString
statement <- prepare conn $ queryString query
execute statement []
dataSet <- trace "Test" seq conn fetchAllRowsMap' statement
disconnect conn
return dataSet
重要的是,单独添加或单独添加都无济于事。目前,结果将与没有其中任何一个的结果相同,但昨天遗漏仍然会导致两个后续查询之一成功,另一个产生与上述相同的错误。但是保持稳定的是上面的第一个代码片段不工作,而第二个工作。seq conn
trace "Test"
trace "Test"
使用 PHP 或 isql,我没有遇到此类问题,这似乎表明问题至少部分出在 HDBC 方面。此外,使用trace
可以系统地在获得结果和没有获得结果之间产生差异,这绝对是不受欢迎的行为。
有没有人熟悉这种问题或有预感可能是什么原因?到目前为止,搜索网络和 SO 根本没有帮助。