Visual Basic 6 ADO更新sql字符串

Visual Basic 6 ADO更新sql字符串,sql,vb6,adodb,recordset,Sql,Vb6,Adodb,Recordset,我试图用一个记录集更新sql中的一条记录我从一个记录集中提取数据并试图将其保存到数据库中的另一个表这是我的代码insert语句在sql中运行良好 “打开连接 cn.ConnectionString=Provider=SQLOLEDB;数据源=&dbLocation&;初始目录=Posbdat;用户Id=sa 中国公开赛 rh.ConnectionString=Provider=SQLOLEDB;数据源=&dbLocation&;初始目录=邮递;用户Id=sa 右侧打开 rs.打开按赎回日期描述、

我试图用一个记录集更新sql中的一条记录我从一个记录集中提取数据并试图将其保存到数据库中的另一个表这是我的代码insert语句在sql中运行良好

“打开连接 cn.ConnectionString=Provider=SQLOLEDB;数据源=&dbLocation&;初始目录=Posbdat;用户Id=sa 中国公开赛 rh.ConnectionString=Provider=SQLOLEDB;数据源=&dbLocation&;初始目录=邮递;用户Id=sa 右侧打开 rs.打开按赎回日期描述、cn、ADMODERADWRITE从客户点订单中选择前1* x、 按datetime desc、rh、adModeReadWrite从寄存器_标题顺序打开选择顶部1* rt.打开从寄存器\u Trans.Trans\u no=寄存器\u Header.Trans\u no上的寄存器\u Trans内部联接寄存器\u头选择顶部1 upc,其中Trans\u子类型='AP'按寄存器的顺序\u Trans.datetime desc,rh,adOpenDynamic 调试。打印x!emp_no 调试。打印x!直到没有 调试。打印x.Fields10 调试。打印项目UPC itemupc=rt.Fields0 Dim cmd作为新的ADODB.Recordset cmd.openupdatecustomerpoints set emp_no=&x!emp_no&_ ,直到_no=&x!直到购买金额=&x!总计,_ ,item_receive='&itemupc&',其中RedemptionDate=从CustomerPoints order by&_ 赎回日期描述,中国大陆,adOpenDynamic cmd.update
我没有关闭任何连接或清理它,因为它不会运行而不崩溃

已经有很长一段时间了,但我过去是这样执行update语句的:

Dim conTemp As New ADODB.Connection

conTemp.CommandTimeout = mvarconConnection.CommandTimeout
conTemp.ConnectionTimeout = mvarconConnection.ConnectionTimeout
conTemp.CursorLocation = mvarconConnection.CursorLocation
conTemp.Mode = mvarconConnection.Mode
conTemp.ConnectionString = mvarconConnection.ConnectionString
conTemp.Open mvarconConnection.ConnectionString

conTemp.Execute "SET CONCAT_NULL_YIELDS_NULL OFF"

conTemp.Execute "UPDATE CustomerPoints set emp_no = " & x!emp_no & _
", till_no = " & x!till_no & " purch_amt = " & x!Total & _
", item_redeem = ' " & itemupc & " ' Where RedemptionDate = (Select top 1 * from
CustomerPoints order by " & _
"RedemptionDate Desc)"

mvarconConnection只是一个存储了所有my DB设置的对象,只需将我的设置替换为您自己的设置。

而您得到的错误是…?5/7/2013 10:35:40 AM End_Trans 23 3251 ADODB。记录集当前记录集不支持更新。这可能是提供程序或所选锁类型的限制。dbEngineErr:没有当前记录。同样,这已经很长时间了,但是当您执行cmd.UPDATE时,它会假定您加载了一个已修改的记录集,然后将其保存回去。您尝试使用的方法要求您选择一个可更新的记录集,进行更改!emp_no=x!emp_no然后cmd.UPDATE。您有一个空记录集,未做任何更改,并试图更新空记录集。我的帖子向您展示了如何执行SQL而不是加载记录集。