问题标签 [jtds]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1019 浏览

sql-server-2008 - jTDS 错误地报告结果集元数据中的数据类型信息(对于 DATE 列,报告 NVARCHAR)

目前,针对 Microsoft SQL Server 2008 的 jTDS JDBC 驱动程序 (1.2.5) 似乎错误地将 DATE 列的数据类型报告为 NVARCHAR。

对于早期版本的 jTDS 和 SQL Server(2005、2000),它的行为可能相同

  • 是否有任何解决方法不需要切换到不同的驱动程序(例如 Microsoft 自己的驱动程序)或修补 jTDS 驱动程序?

  • 此外,我想避免必须对数据字典(INFORMATION_SCHEMA.COLUMNS 视图等)执行查询以查找数据类型信息(并可能交叉引用“ exec sp_datatype_info ”的输出以检索 SQL数据类型)

快速浏览 jTDS 突出的错误并不能说明这是否会被修复。

这个问题的答案:JDBC - JTDS bug ? 对于日期和时间(x)类型的列,似乎表明这在 SQL Server 2005 中不会发生。

提前致谢。

0 投票
3 回答
23370 浏览

java - 连接到本地 MS SQL Server

我有一个本地 MS SQL Server,我正在尝试使用 Java 中的 JTDS 连接到它。这是连接字符串:

和服务器属性:
名称:USER-PC\SQLEXPRESS
根目录:c:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL

我收到一个Exception in thread "main" java.sql.SQLException: Network error IOException: Connection refused: connect错误。

我该如何补救?

0 投票
1 回答
4555 浏览

jdbc - Azure、Oracle SQL Developer 和 JDBC 驱动程序

我有一个 SQL Azure 数据库和 Oracle SQL Developer。我想使用 Oracle SQL Developer 连接到我的 Azure 实例。SQL Developer 需要 JDBC 驱动程序才能使用 MSSQL 数据库。jTDS 驱动程序适用于 SQL Developer,但不适用于 SQL Azure 数据库(显然)。4.0 版的 MS JDBC 驱动程序适用于 SQL Azure,但不适用于 Oracle SQL Developer(显然)。有没有其他人来过这里并找到了解决方案?

0 投票
1 回答
222 浏览

sql - 我的 JDBC 插入/更新命令有什么问题

这是一个简单的预订/预订表:key 是 timeOfBooking 和 dateOfBooking 的 anId。

但是,当我尝试这样做时:插入 if-not-exist,更新 if-exist,关于与此代码链接到时间的标识符:

我最终得到 jdbc 层返回此错误:

知道有什么问题吗?

0 投票
2 回答
3786 浏览

java - 如何在 Java/jtds 应用程序中支持 SQL GO 语句?

我正在开发一个基于 Java 的 OSS 应用程序SqlHawk,它的功能之一是针对服务器运行升级 sql 脚本。

Microsoft 已经制定了使用GO语句将脚本拆分为批次的惯例,这是一个好主意,但只是要求字符串上的错误匹配。

目前我有一个非常基本的:

哪种方法有效,但容易被引用的 GO 语句或缩进问题之类的事情绊倒。

我认为使这个真正可靠的唯一方法是在应用程序中有一个 SQL 解析器,但我不知道如何去做,或者这是否最终会变得不那么可靠(特别是考虑到这个工具支持多个 DBMS) .

我有什么方法可以解决这个问题?代码示例在这里对我很有帮助。

github上的相关sqlHawk代码。

目前使用jtds执行脚本中的批处理。

0 投票
2 回答
744 浏览

java - 将行插入 MySQL 数据库

我正在使用带有 JDTS 驱动程序的 eclipse。我正在尝试在 MySQL 数据库中插入一行。连接和语句生成得很好(我认为)但是当我运行我的 executeUpdate 方法时,我得到一个空指针异常。

我有一个 DBclient 类来处理与 DB 的连接,然后我有一个 Uploader 类,它将收集所有相关信息并将其提供给我的 insert 方法。

我的 DBclient 类:

}//数据库客户端

然后是我的 Uploader 类

}//上传者

空指针异常是从 DBclient 类的 insertToDB() 方法引发的。

任何帮助将不胜感激。

0 投票
3 回答
1440 浏览

java - getdate() 通过结果集查询不抛出当前行异常

我在这里有一个问题,我想做的是从表中获取当前日期和列。到目前为止,这是我的代码:

并在上面我的代码的第 3 行中抛出异常“ResultSet 中没有当前行”。我的代码有什么问题?可能误解了 ResultSet 的用法?

感谢您的任何回答...

编辑:回答。请参阅下面@Christopher 的帖子。谢谢

0 投票
1 回答
765 浏览

java - net.sourceforge.jtds.jdbc.cache.SimpleLRUCache 导致内存泄漏

我是使用 jtds 连接驱动程序的新手。我编写了一个应用程序,它读取大约 2500 个大型 xml,并进行 SQL 查询并针对 SQL 服务器运行。我已经看到,当我达到一定数量的 xml 时,我的程序运行内存不足。我使用内存分析器在 Eclipse 中检查了我的 phd 转储文件,发现 net.sourceforge.jtds.jdbc.cache.SimpleLRUCache 占用了大量内存。我连接到 SQL 服务器一次并保持连接活动,直到我刷新所有查询。下面是我对服务器运行查询的代码。我不知道如何获得 net.sourceforge.jtds.jdbc.cache.SimpleLRUCache 类的句柄,因为它有一个我认为可能会清除缓存的 clear 方法。同样,我对 jtds 驱动程序不是很了解。谁能帮我解决这个问题?

0 投票
2 回答
3903 浏览

java - net.sourceforge.jtds.jdbc.Driver 中的 setAutoCommit() 中是否存在“set chained”错误?

我对方法中的set chained声明有些困惑setAutoCommit()net.sourceforge.jtds.jdbc.Driver

源代码说:

但是,它不应该倒退吗,并且对于 autoCommit==false 应该关闭链接?


我遇到这个的原因如下:

我正在编写一个 Java 应用程序,它需要执行一些复杂的 SQL 并在其中任何一个失败时回滚所有这些:

  • 使用打开 Sybase 连接net.sourceforge.jtds.jdbc.Driver

  • 调用 setAutoCommit(false)

  • 做 SQL1

  • 调用存储过程“MySP1”

    • 存储过程 MySP1' 不在我的控制之下

    • 它有EXEC sp_procxmode 'dbo.MySP1','unchained'

  • 做 SQL2

  • 如果 SQL2 失败,则回滚所有内容(包括 SQL1),否则提交。

完成后,我从 MySP1 收到以下错误:

0 投票
2 回答
5556 浏览

java - 如何解决“存储过程 'MySP1' 只能在非链式事务模式下运行”错误?

我正在编写一个 Java 应用程序,它需要执行一些复杂的 SQL 并在其中任何一个失败时回滚所有这些:

  • 使用打开 Sybase 连接net.sourceforge.jtds.jdbc.Driver
  • 调用 setAutoCommit(false)
  • 做 SQL1
  • 调用存储过程“MySP1”
    • 存储过程 MySP1' 不在我的控制之下
    • 它有EXEC sp_procxmode 'dbo.MySP1','unchained'
  • 做 SQL2
  • 如果 SQL2 失败,则回滚所有内容(包括 SQL1),否则提交。

完成后,我从 MySP1 收到以下错误:

存储过程“MySP1”只能在非链式事务模式下运行。' SET CHAINED OFF' 命令将导致当前会话使用非链式事务模式。


我尝试了以下方法,但都没有帮助:

  1. 将“chained=false”添加到传递给getConnection()方法(advice source)的 Properties 对象。

    这没有效果,很可能是因为在我看来net.sourceforge.jtds.jdbc.Driver支持chained属性。

  2. 将“chained=false”添加到传递给getConnection()方法(advice source)的 URL 字符串。

    这也没有效果

  3. 之后调用SET CHAINED OFFSQL setAutoCommit()

    这没有效果。

  4. 研究如何setAutoCommit()运作

    这使我相信驱动程序中可能存在错误。但是,如果是这种情况,#1-#3 应该已经解决了这个错误

  5. 调用setAutoCommit(true)而不是setAutoCommit(false).

    这修复了关于非链接模式的错误,但据我了解,这意味着我不能在最后回滚 100% 的 SQL,因为到那时第一个 SQL 语句已经被自动提交。