Używam tego fragmentu kodu, aby wstawić niektóre dane do bazy danych:Sporządzone sprawozdanie rzuca tylko wyjątek, gdy nie debugowania
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:war_odbc");
PreparedStatement st =
con.prepareStatement(
"INSERT INTO Actors(FirstName,LastName,Age) VALUES(?,?,?)");
st.setString(1, "Robert");
st.setString(2, "de Niro");
st.setInt(3,45);
st.executeUpdate();
con.close();
Jeśli użyć debuggera i krok jeden wiersz na raz, wszystko idzie dobrze. Jeśli go nie używam i po prostu uruchomię aplikację, otrzymuję następujący wyjątek:
[Microsoft][ODBC Driver Manager] Invalid string or buffer length
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)
Używam systemu Windows 7 w wersji 64-bitowej. Poszedłem do Narzędzia administracyjne, źródła danych (ODBC) i pomyślnie je przetestowałem.
Od kiedy to "de Niro" jest liczbą całkowitą? –
Prawdziwe pytanie brzmi: "Dlaczego ten kod działa w trybie debugowania?" ... – Aubin
De Niro's De Niro, może być tym, co lubi – lifetimes