拋出異常,我使用這段代碼的一些數據插入到數據庫:預處理語句只有當沒有調試
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();
如果我使用調試器和單步執行一行的時間,一切順利。如果我不使用它,只是運行應用程序,我得到這個異常:
[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)
我正在使用Windows 7 64位。 我去了管理工具,數據源(ODBC),我成功地測試了它。
既然是'de Niro'一個整數? – 2013-02-14 16:33:05
真正的問題是:「爲什麼這個代碼在調試模式下工作?」... – Aubin 2013-02-14 16:34:48
De Niro的De Niro,他可以是他喜歡的任何東西 – lifetimes 2013-02-14 16:41:47