java - 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.
问题是,可保持性已经在连接中设置,如上所示。我用来访问数据库的凭据是只读的,但无论哪种方式,这些语句都只是选择语句,所以它不应该相关。
任何想法为什么会发生这种情况?
解决方案
推荐阅读
- rust - 使用 extern 命令时找不到 crate
- firebase - 无法为 firebase 中的 bigquery 链接启用 google 分析
- android - 使用 FCM 发送通知时如何使用图像 URL?
- c# - 网站安全 - 1 个主站点,1 个在主站点内托管的辅助站点
- javascript - 在这段代码中,resolve 和 reject 做什么?
- android - Unity ARFoundation App Crash - 空指针取消引用问题
- axon - Axon 自动创建的表格有什么用?
- ruby - 加载 AWS S3 存储桶时出现“提取名称”错误
- wordpress - 基于用户的运输
- asp.net - .csproj:错误:Web 应用程序项目配置为使用 IIS。找不到 Web 服务器