Access2000 JDBC-ODBC 的问题!无法插入行(100分)

S

squell

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么使用JDBC-ODBC访问Access2000时,无法Update或Insert,
怀疑ODBC for Access2000只支持读取,
可我用Statement的executeUpdate却可以正常执行?
以下是我的插入语句
lstat= pdbConn.createStatement
(ResultSet.TYPE_FORWARD_ONLY ,ResultSet.CONCUR_UPDATABLE);
......
lrs= lstat.executeQuery(SQLString)
lrs.moveToInsertRow();//一到这就报错:
//java.sql.SQLException: Invalid Cursor Type: 1003
lrs.updateString("呼叫",larrStr[0]);
lrs.updateString("对方号码",larrStr[2]);
lrs.insertRow();

lrs.moveToCurrentRow();
 
lrs.moveToInsertRow();//一到这就报错:
//java.sql.SQLException: Invalid Cursor Type: 1003
lrs.updateString("呼叫",larrStr[0]);
lrs.updateString("对方号码",larrStr[2]);
lrs.insertRow();

lrs.moveToCurrentRow();
上述语句,有些是不支持的
请你直接用sql语句吧

SQLString=“insert into table values()";
or "update table set tablefiedl=''"
lrs= lstat.executeQuery(SQLString)
 
snjat, 我已经是这么做的,我还想弄清楚怎么回事!请回答我两个问题,谢谢:
1。关于Insert与Update
你认为不支持的原因是A)还是B)?
A) jdk的jdbc-odbc不支持ResultSet的InsertRow和UpdateXXX?(我用的是jdk1.4)
可我是用CONCUR_UPDATABLE参数CreateStatement的!
or B) 还是说JDBC-ODBC与Access2000之间存在问题导致不支持更新呢?
2. 另外,jdk1.4不是声称它的JDBC-ODBC支持JDBC2.0吗?
怎么会不支持TYPE_SCROLL_INSENSITIVE呢?
createStatement
(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY )时立即报错,
是不是Access2000的问题?
 
我看过这些帮助,都说JDBC2.0支持这些操作,但都没试,因为不需要。
你觉的用这些自带的功能好吗?我认为还不如直接写SQL语句好呢
 
1) 因为我发现使用Statement.executeUpdate,处理大量数据时好像很慢,所以希望如果
能使用InsertRow和UpdateXXX,速度会有所提高。
2 ) 另外前面写错了,应该是
createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY)就报错,
换成TYPE_FORWARD_ONLY就没问题了。
3) 我想搞清楚,是不是当遇到Access2000时JDBC-ODBC就无法正常使用了,有没有
什么朋友成功用过JDBC-ODBC的JDBC2.0的特性呢?
因为我认为JDK1.4不会随便声称它的JDBC-ODBC支持JDBC2.0吧?
 
我问的问题很难吗?还是我没表达清楚?
怎么都没人回答?
 
你可以用DatabaseMetaData 类的supportResultSetType() 和 supportResultSetConcarrency()
验证一下是否支持
 
to dippa:
以前就使用supportResultSetType() 和 supportResultSetConcarrency()验证过了,
调用结果为真(是支持的),可是运行起来还是会报错,
可见这里JDBC-ODBC的验证不是很准确。
 
你的update好用吗 我的怎么不好用啊
 
我用得很正常
 
顶部