Versuch, von Java 6-Konsolenanwendung mit Microsoft SQL Server 2008 R2 auf einem Microsoft Windows Server 2008 R2 64-Bit-System über ein ODBC-System-DSN zu verbinden SQL Server Native Client 10.0. Der folgende Quellcode:ODBC-Fehler: Ungültige Zeichenfolgen- oder Pufferlänge - Microsoft Server 2008 32 Bit gegenüber 2008 R2 64 Bit
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);
}
Fehler auslöst
java.sql.exception [Microsoft] [ODBC Driver Manager] invalid string buffer length
maddeningly, den gleichen Code, mit und ODBC-System-DSN in der exakt gleichen Art und Weise konfiguriert, WORKS mit MS Server 2008 32-Bit (Nicht- R2) und MS SQL Server 2008 R2. Die Microsoft ODBC-Treiberdlls zwischen den beiden Systemen sind unterschiedliche Versionen, 6.0.xxxx vs 6.1.xxxx, die ich vermute, ist der Schuldige.
Haben Sie eine Referenz? Etwas auf der Oracle-Website, auf dem dieser Fehler dokumentiert ist? –
Ich habe keine Dokumentation. In Pc mit 64 Bit führe Abfrage gegen Zugriff und es zeige mir diesen Fehler. Aktualisieren Sie nur Java 1.7.17 auf 1.7.70 und dies funktioniert – user503601
Sie bedeutet dies https://bugs.openjdk.java.net/browse/JDK-8038751 – Horcrux7