ADO更改一条记录的值为何出错?

tercel001 2004-07-23 05:35:33
有一数据库 Test.mdb 中,有一表A,有两个字段
a和b,其数据类型相同
dim oCnn as new adodb.connection
dim cmd as new adodb.command
dim rt as adodb.recordset
dim strLink as String

strLink = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Test.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False"

oCnn.CursorLocation = adUseClient
oCnn.open strLink

cmd.ActiveConnection = oCnn
cmd.CommandType = adCmdText
cmd.CommandText = "select a,b from A"
Set rt = cmd.Execute

while(not rt.eof )
rt.fields("a").value=rt.fields("b").value
rt.movenext
wend

到这个地方,报错说

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

请问这个问题该如何解决?
谢谢了
...全文
89 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
frankwong 2004-07-24
  • 打赏
  • 举报
回复
'如果楼主一定要使用command,那么
cmd.ActiveConnection = oCnn
cmd.CommandType = adCmdtable
cmd.CommandText = "A"
Set rt = cmd.Execute

while(not rt.eof )
rt.fields("a").value=rt.fields("b").value
rt.fields("a").update
rt.movenext
wend
zhujiechang 2004-07-24
  • 打赏
  • 举报
回复
Set rt = cmd.Execute
使用command命令集的情况下,默认记录集为只读.改参数
haohaohappy 2004-07-23
  • 打赏
  • 举报
回复
dim cn As New ADODB.Connection
dim Rs as new adodb.recordset
Cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\test.mdb;Persist Security Info=False"
Cn.CursorLocation = adUseClient
Cn.Open

Rs.Open "select a,b from A", CnDoingWeld, adOpenDynamic, adLockBatchOptimistic
rs.movefirst
do while rs.eof<>true
rs.fields("a").value=rs.fields("b")
rs.movenext
loop
mikimon 2004-07-23
  • 打赏
  • 举报
回复
dim cn as new adodb.connection

cn.open connectstring
cn.execute("update A set a=newvalue,b=newvalue where a=? or b=?")
饮水需思源 2004-07-23
  • 打赏
  • 举报
回复
ocnn.execute " update A set a=b "
Andy__Huang 2004-07-23
  • 打赏
  • 举报
回复
while(not rt.eof )
rt.fields("a").value=rt.fields("b").value
rt.update
rt.movenext
wend

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧