今天在用jdbc-odbc birdge 连接access的时候总是出错
出错原因如下:
update userinfo set lastSend = Now() where taskId = 88 and userName in('962817673', 'notexistsatall')
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3111)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:288)
at com.boxun.core.DBManager.getUsers(DBManager.java:185)
at com.boxun.core.UserInfoManager.getToBeSentTo(UserInfoManager.java:19)
at com.boxun.core.Engine.startSendSms(Engine.java:32)
at com.boxun.ui.BomberTaskNode.start(BomberTaskNode.java:77)
at com.boxun.ui.SmsInputDialog.startSending(SmsInputDialog.java:158)
at com.boxun.ui.SmsInputDialog.actionPerformed(SmsInputDialog.java:146)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3093)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1774)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
2006-12-24 22:58:47 org.apache.commons.httpclient.HttpMethodBase getResponseBody
仔细看了看,不对啊,需要的参数我都给加上了,怎么还说缺少参数呢?没有办法把sql语句拷贝到access里边执行盯了好一会儿才发现原来是lastSent被我写成了lastSend,然后我又用其它任何一个userinfo表中不存在的字段做测试,比如update userinfo set abc = 'abc',同样是上边这个错误提示,真是晕啊?在Mysql里边应该不是这样吧,还没有测试过,明天把mysql测试结果贴上来看看
Mysql里边测试了一下,如果把栏目名称写错的话:Unknown column 'abc' in 'field list',看来是不一样