为什么Resultset 不能更新?
import java.sql.*;
public class UpdatableResultSet{
public static void main(String args[]){
String query = "SELECT 联系人编号,名字,分机 FROM 联系人";
UpdatableResultSet p = new UpdatableResultSet(query);
}
public UpdatableResultSet(String query) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:Contract");
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery(query);
ResultSetMetaData md = rs.getMetaData();
if(rs.getConcurrency() == ResultSet.CONCUR_UPDATABLE)
System.out.println("UPDATABLE");
else
System.out.println("READ_ONLY");
int nColumns = md.getColumnCount();
for (int i=1; i<=nColumns; i++){
System.out.print(md.getColumnLabel(i)+((i==nColumns)?"\n":"\t"));
if (i==2) System.out.print("\t");
}
while (rs.next()) {
rs.updateString(1,"222");
//rs.updateString("分机","000");
rs.updateRow();
for(int i=1; i<=nColumns; i++){
System.out.print(rs.getString(i)+((i==nColumns)?"\n":"\t"));
}
}
}
catch(ClassNotFoundException e){
e.printStackTrace();
}
catch(SQLException e){
e.printStackTrace();
}
}
}
运行结果:
UPDATABLE
联系人编号 名字 分机
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]行中有错误
at sun.jdbc.odbc.JdbcOdbcResultSet.setPos(JdbcOdbcResultSet.java:5135)
at sun.jdbc.odbc.JdbcOdbcResultSet.updateRow(JdbcOdbcResultSet.java:4085)
at UpdatableResultSet.<init>(UpdatableResultSet.java:31)
at UpdatableResultSet.main(UpdatableResultSet.java:6)
Finished executing
使用的数据库是ACCESS,为什么不能更新?