热情软件屋

 

如下错误:实时错误-2147217864(80040e38)无法为更新行为集定位


编号:QA004375
建立日期: 2001年8月26日 最后修改日期:2002年12月8日
所属类别:

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
    

    水平: 刚入门

回答:

    将巡更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

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio