代码之家  ›  专栏  ›  技术社区  ›  pc1oad1etter

当我访问ADODB字段的值时,是什么导致System.AccessViolationException异常?

  •  0
  • pc1oad1etter  · 技术社区  · 14 年前

    我正在从.Net web服务连接到PostgreSQL数据库(两者都在Windows XP计算机上)。最近有几次,在几台不同的电脑上,我们收到 System.AccessViolationException 错误。

    我能够获得的一个堆栈跟踪显示,当我获取ADODB.recordset并获得字段值时,它正在发生。 例如

    Dim rs as ADODB.Recordset = 'initialize recordset via a query to database
    MsgBox(rs("fieldName").Value)
    

    这并不总是失败,它很少失败。我们在其中一台电脑上运行memtest,没有发现任何问题。

    1 回复  |  直到 11 年前
        1
  •  0
  •   Chris Travers    12 年前

    首先要做的是尝试升级ADODB提供程序(有时称为驱动程序)。这可能是一种罕见的错误,可能已经修复。然而,它很少失败这一事实对我来说有点危险,并暗示了某些地方存在某种并发问题。这是一个多线程应用程序吗?其他线程当时在做什么?这可能是一个种族状况吗?

    第二件要检查的事情是,某些值是否能够持续地使程序崩溃。也许在茶叶里有嵌入的空值?

    不过,很可能是司机的问题。如果你看到任何类似的问题,那总是开始的地方。