我正在使用 ODBC 连接到本地 SQL Server 进入 HDBC。
上连接后quickQuery
,我不能close
它。我需要执行commit
第一个。
这是应该的方式吗?commit
当我只执行查询时,为什么有必要?
在 GHCi 上:
m + Database.HDBC Database.HDBC.ODBC
conn <- connectODBC "Driver={SQL Server};Server=thiagon\\sqlserver2012;Database=senior;UID=framework;PWD=framework;"
vals <- quickQuery conn "SELECT TOP 5 * FROM whatever;" []
print vals
commit conn
disconnect conn
如果删除该commit conn
行,则会出现异常:
*** Exception: SqlError {seState = "[\"25000\"]", seNativeError = -1, seErrorMsg = "disconnect: [\"0: [Microsoft][ODBC SQL Server Driver]Estado de transa\\65533\\65533o inv\\65533lido\"]"}
该消息是葡萄牙语,意思是“无效的交易状态”。