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

本文解决了数据库更新时遇到的“当前记录集不支持更新”的错误。主要介绍了两种解决方案:一是确保数据库表中有主键;二是调整游标的位置设置。此外,还讨论了在Access数据库转换为SQL Server时可能遇到的问题及解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当前记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制    ----问题的解决方法如下:

第一: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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值