如下错误:实时错误-2147217864(80040e38)无法为更新行为集定位
编号:QA004375
建立日期: 2001年8月26日 最后修改日期:2002年12月8日
所属类别:
Q
shen:
操作系统:windows me
编程工具:vb6.0
问题:在执行到第二个adoprimaryrs.update时,会产生如下错误:实时错误-2147217864(80040e38)无法为更新行为集定位:一些值可能已在最后读取后改变。巡更数据库时间为acess数据库,其中只有只有3个字段,分别为巡更员id(long)(顺序位置0)、巡更员信息(text)(顺序位置1)、是否有报警(boolean)(顺序位置2)
Option Explicit
Dim WithEvents adoPrimaryRS As Recordset
Dim mbChangedByCode As Boolean
Dim mvBookMark As Variant
Dim mbEditFlag As Boolean
Dim mbAddNewFlag As Boolean
Dim mbDataChanged As Boolean
Private Sub Form_Load()
Dim db As Connection
Set db = New Connection
db.CursorLocation = adUseClient
db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=E:\my program\emaptemp\xungeng.mdb;"
Set adoPrimaryRS = New Recordset
adoPrimaryRS.Open "select * from 巡更数据库时间", db, adOpenStatic, adLockOptimistic
adoPrimaryRS.AddNew
adoPrimaryRS!巡更id = 123
adoPrimaryRS.Update
' adoPrimaryRS.EditMode
adoPrimaryRS(1) = "iuyiouy"
adoPrimaryRS.Update
Set grdDataGrid.DataSource = adoPrimaryRS
mbDataChanged = False
End Sub
水平: 刚入门
A回答:
将巡更id 定义为关键字,或者增加一个自动编号字段。
zhang的意见:
将db.CursorLocation = adUseClient 改为db.CursorLocation = adUseServer即可。
主持人注:参考微软的Knowledge Base的文章:“Q300586 BUG:如果更改 ADODC 记录集中的数值字段,将出现错误"无法找到要更新的行"”。
此问题由rocking回答。
附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, 数据库, database, query, 错误信息, error, error message, link, compile, runtime。
| |
|
|
| |
|
|