记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制...

当前记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制----问题的解决方法如下:
第一:ACC转成SQL数据库主键变没了,设置主键就行了
第二:是动态游标集是在客户端还是服务器端的问题。
详细资料如下:
· adUseServer:让数据存储管理光标。
· adUseClient:让ADO管理光标。
可以在打开连接或记录集之前设置这个属性:
conPubs.CursorLocation = adUseServer
conPubs.Open strConn
或者:
rsAuthors.CursorLocation = adUseClient
rsAuthors.Open "authors", conPubs
缺省的光标是基于服务器的,理解这两种类型的区别非常重要。对于一个服务器光标来说,数据存储的任务是管理记录,所以,当使用服务器光标建立一个记录集时,数据存储管理着记录的移动、记录的更新等等。
对于一个客户光标,记录集的全部内容复制给客户,受本地客户光标服务管理。这意味着对于一个客户光标,打开一个具有大量记录的记录集要比使用基于服务器的光标打开相同记录集所花费的时间长得多。

这个问题解决得方法就是在rs1.open sql,conn,1,3 前加上
rs.cursorlocation=3 就行了。
---------------------------------------
在 access 中运行正常,把数据库转成sql-server2000 ,出现上述错误,

部分代码如下:
rs.open sql,conn,1,3
rs.update
ADODB.Recordset 错误 '800a0cb3'
解决方法如下:
Table中加:主键设置
原因:主键丢失,id自增量丢失
其它内容:
sql="select * from 表名1 where s_id in (select s_id from 表名2)"
需要用如下语句执行:
set rs=conn.execute(sql)
不要用如下语句执行:
rs.open sql,conn,1,1
【记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制...】

    推荐阅读