在 iReport 中連接 MS SQL Server 資料庫可以使用 jTDS
而 jTDS-1.2.2 的預設屬性是支援 8.0 也就是一般稱為 2000 的 SQL Server
一般會設定 JDBC URL 如下

jdbc:jtds:sqlserver://ServerAddress/DBName;instance=

當需要連接 7.0 或是 6.5 等先前版本的 SQL Server 時就會出現下列錯誤訊息

1
2
3
4
5
6
7
Message:
    java.sql.SQLException: I/O Error: Stream 0 attempting to read when no request has been sent
Level:
    SEVERE
Stack Trace:
    net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2307)
...之後省略

這時只要在 JDBC URL 中增加屬性調整 TDS

連接 SQL 7.0

jdbc:jtds:sqlserver://ServerAddress/DBName;instance=;TDS=5.0

連接 SQL 6.5

jdbc:jtds:sqlserver://ServerAddress/DBName;instance=;TDS=4.2

但基本上只有連線到 SQL 6.5 才需要指定,若是連接到 SQL 7.0 時 jTDS 會自動偵測調整。

詳細資料可以參考 jTDS 官方FAQ文件 http://jtds.sourceforge.net/faq.html