ODBCシステムDSN経由でMicrosoft Windows Server 2008 R2 64ビットシステムでJava 6コンソールアプリケーションからMicrosoft SQL Server 2008 R2に接続しようとしていますSQL Serverネイティブクライアント10.0。以下のソースコード:ODBCエラー:無効な文字列またはバッファ長 - Microsoft Server 2008 32ビットと2008 R2 64ビット
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String srcURL = "jdbc:odbc:FOO";
if (dbc == null)
{
dbc = DriverManager.getConnection(srcURL);
dbc.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
}
else
{
dbc.close();
dbc = DriverManager.getConnection(srcURL);
dbc.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
}
}
catch (ClassNotFoundException cx)
{
System.out.println("class not found");
}
catch (SQLException sx)
{
System.out.println("SQL Exception: " + sx);
log.info("SQL Exception: " + sx);
}
が非Maddeninglyエラー
java.sql.exception [Microsoft] [ODBC Driver Manager] invalid string buffer length
、同一の符号、およびMS Server 2008の32ビットとワークスまったく同じ方法で構成ODBCシステムDSNを、(スローR2)とMS SQL Server 2008 R2をサポートしています。 2つのシステム間のMicrosoft ODBCドライバーのDLLは、バージョン6.0.xxxxと6.1.xxxxの違いがありますが、それは原因は疑いがあります。
これについての参考情報はありますか?このバグが文書化されているOracle Webサイト上の何か? –
私はどんなドキュメンテーションも持っていません。 64ビットのPcでクエリを実行すると、このエラーが表示されます。 Java 1.7.17から1.7.70にのみアップグレードしてください。 – user503601
これは、https://bugs.openjdk.java.net/browse/JDK-8038751 – Horcrux7