如何解决SetHoldability 已启用但 MSSQL-DRIVER 抱怨它不是
我有一个 clojure 代码,我在其中访问 MSSQL 数据库,然后此代码执行一些选择语句以从数据库中检索一些数据。
在设置连接时,我按照建议设置了“setHoldability”:
(defmethod connection-with-timezone :sql-jdbc
[driver database ^String timezone-id]
(let [conn (.getConnection (datasource database))]
(try
(set-best-transaction-level! driver conn)
(set-time-zone-if-supported! driver conn timezone-id)
(try
(.setReadOnly conn true)
(catch Throwable e
(log/debug e (trs "Error setting connection to read-only"))))
(try
(.setHoldability conn ResultSet/CLOSE_CURSORS_AT_COMMIT)
(catch Throwable e
(log/debug e (trs "Error setting default holdability for connection"))))
conn
(catch Throwable e
(.close conn)
(throw e)))))
但是在运行代码时,语句失败,说:“SQL Server 仅支持连接级别的可保持性。使用 connection.setHoldability() 方法。”
异常:
2021-03-24T09:59:33.581555081Z com.microsoft.sqlserver.jdbc.SQLServerException: SQL Server supports holdability at the connection level only. Use the connection.setHoldability() method.
事情是,可保持性已经在连接中设置,如上所示。我用来访问数据库的凭据是只读的,但无论哪种方式,这些语句都只是选择语句,因此不应相关。
知道为什么会发生这种情况吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。