我用java连接access,成功连接后,我使用PreparedStatement pmst = con.prepareStatement("Select * from userinfo where id=?");
pmst.setLong(1, 1);
ResultSet rs = pmst.executeQuery();有异常产生:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]可选的功能未实现
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLBindInParameterBigint(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setLong(Unknown Source)
at AccessTest.main(AccessTest.java:29)id字段是自动增长型的,如果改成statement语句来读就没有问题,但为什么改为pmst就出错呢?语句上应该没有错吧?同样的代码我在SQL SERVER 2000里面是能正常运行了.

解决方案 »

  1.   

    在 oracle 运行肯定也是正常的
      

  2.   

    因为ACCESS是数据库存储格式的文本文件
      

  3.   

    pmst.setLong(1, 1);//这一句错了
    应该改为pmst.setInt(1,1);
      

  4.   

    谢谢askuaile,果然是这里,不过感觉有点奇怪~ACCESS里面自动编号属于长整形,应该用的是setLong()才对吧,不过居然是setInt()!