snoopysalive
Mitglied
Hallo!
Ein Java-Programm, das ich vor längerer Zeit geschrieben habe, soll nun auch unter Windows 7 x64 laufen. Das Programm baut dabei mehrer Verbindungen zu unterschiedlichen Datenbanken auf. Eine davon wird mit MS SQL 2005 aufgenommen.
Das Problem: Unter 32-bit funktioniert das nach wie vor einwandfrei, unter 64-bit erhalte ich aber die folgende Stacktrace:
In diesem Beispiel habe ich den aktuellen JDBC/ODBC-Treiber von Microsoft verwendet, um die Verbindung aufzubauen und das Programm damit unter Windows 7 x64 kompiliert. Wenn ich den mit Java mitgelieferten JDBC/ODBC-Treiber verwende, kommt übrigens der gleiche Fehler.
Die Frage ist demnach, an was das liegt und wie ich es lösen kann. Google hat mir da noch nicht helfen können. Hier noch der Code, auf den sich der Fehler bezieht:
Vielleicht seh ich ja den Wald vor lauter Bäumen nicht, aber ich wäre froh, wenn mir jemand einen Tipp geben könnte, was ich eigentlich falsch mache.
Danke
Matthias
Ein Java-Programm, das ich vor längerer Zeit geschrieben habe, soll nun auch unter Windows 7 x64 laufen. Das Programm baut dabei mehrer Verbindungen zu unterschiedlichen Datenbanken auf. Eine davon wird mit MS SQL 2005 aufgenommen.
Das Problem: Unter 32-bit funktioniert das nach wie vor einwandfrei, unter 64-bit erhalte ich aber die folgende Stacktrace:
Code:
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Ungültige Zeichenfolgen- oder Pufferlänge
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcConnection.buildTypeInfo(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at webactivation.MainFrame.getOdbcConnection(MainFrame.java:354)
at webactivation.MainFrame.connect(MainFrame.java:288)
at webactivation.MainFrame.init(MainFrame.java:176)
at webactivation.MainFrame.<init>(MainFrame.java:16)
at webactivation.Webactivation.main(Webactivation.java:5)
In diesem Beispiel habe ich den aktuellen JDBC/ODBC-Treiber von Microsoft verwendet, um die Verbindung aufzubauen und das Programm damit unter Windows 7 x64 kompiliert. Wenn ich den mit Java mitgelieferten JDBC/ODBC-Treiber verwende, kommt übrigens der gleiche Fehler.
Die Frage ist demnach, an was das liegt und wie ich es lösen kann. Google hat mir da noch nicht helfen können. Hier noch der Code, auf den sich der Fehler bezieht:
Java:
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
/* Bzw. */
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
Properties props = new Properties();
props.setProperty("ssl", "true");
props.setProperty("user", /* username */);
props.setProperty("password", /* password */);
String host = "jdbc:odbc:WEBACTIVATON";
Connection connection = null;
try {
connection = DriverManager.getConnection(host, props); // Hier knallt's!
}
catch (SQLException e) {
e.printStackTrace();
}
Vielleicht seh ich ja den Wald vor lauter Bäumen nicht, aber ich wäre froh, wenn mir jemand einen Tipp geben könnte, was ich eigentlich falsch mache.
Danke
Matthias