【问题标题】:The instruction at "0x7c910a19" referenced memory at "oxffffffff". The memory could not be "read"“0x7c910a19”处的指令引用了“oxffffffff”处的内存。无法“读取”内存
【发布时间】:2011-06-05 04:08:09
【问题描述】:

“0x7c910a19”处的指令引用了“oxffffffff”处的内存。内存无法“读取”

我有一个小问题,我在 .vbs 终止之前收到上述错误。我不知道为什么会抛出这个错误。下面是.vbs文件的流程:

Call ImportTransactions()
Call UpdateTransactions()

Function ImportTransactions()

  Dim objConnection, objCommand, objRecordset, strOracle
  Dim strSQL, objRecordsetInsert

  Set objConnection = CreateObject("ADODB.Connection")
  objConnection.Open "DSN=*****;UID=*****;PWD==*****;"
  Set objCommand = CreateObject("ADODB.Command")
  Set objRecordset = CreateObject("ADODB.Recordset")

  strOracle = "SELECT query here from Oracle database"

  objCommand.CommandText = strOracle
  objCommand.CommandType = 1
  objCommand.CommandTimeout = 0
  Set objCommand.ActiveConnection = objConnection
  objRecordset.cursorType = 0
  objRecordset.cursorlocation = 3  
  objRecordset.Open objCommand, , 1, 3

  If objRecordset.EOF = False Then
    Do Until objRecordset.EOF = True        
      strSQL = "INSERT query here into SQL database" 
      strSQL = Query(strSQL)
      Call RunSQL(strSQL, objRecordsetInsert, False, conTimeOut, conServer, conDatabase, conUsername, conPassword)
      objRecordset.MoveNext
    Loop
  End If

  objRecordset.Close()
  Set objRecordset = Nothing
  Set objRecordsetInsert = Nothing

End Function

Function UpdateTransactions()

  Dim strSQLUpdateVAT, strSQLUpdateCodes
  Dim objRecordsetVAT, objRecordsetUpdateCodes

  strSQLUpdateVAT = "UPDATE query here SET [value:costing output] = ([value:costing output] * -1)"
  Call RunSQL(strSQLUpdateVAT, objRecordsetVAT, False, conTimeOut, conServer, conDatabase, conUsername, conPassword) 

  strSQLUpdateCodes = "UPDATE query here SET [value:costing output] = ([value:costing output] * -1) different WHERE clause"
  Call RunSQL(strSQLUpdateCodes, objRecordsetUpdateCodes, False, conTimeOut, conServer, conDatabase, conUsername, conPassword)                 

  Set objRecordsetVAT = Nothing
  Set objRecordsetUpdateCodes = Nothing

End Function

UDPATE:如果我在打开连接后退出该函数(见下文),它仍然会导致相同的错误。

Function ImportTransactions()


  Dim objConnection, objCommand, objRecordset, strOracle
  Dim strSQL, objRecordsetInsert

  Set objConnection = CreateObject("ADODB.Connection")
  objConnection.Open "DSN=*****;UID=*****;PWD==*****;"
  Set objCommand = CreateObject("ADODB.Command")
  Set objRecordset = CreateObject("ADODB.Recordset")
  Exit Function

End Function

它同时进行导入和更新,之后似乎抛出了这个错误。

提前感谢您的帮助,

克莱尔

【问题讨论】:

  • 你应该缩小到违规行...
  • 米奇小麦:错误似乎在 ImportTransactions 中,但是我为另一个 vbs 文件生成了类似的代码,这不会引发任何错误。
  • 您能否附加一个调试器并查看调用堆栈或在 0x7c910a19 加载的任何模块 - 是 VBScript 或 ADO COM 对象还是 Oracle 驱动程序内部的错误?我不确定这是否真的有帮助,但是某处的某处反对您提供的参数,知道什么可能很有用。你可以在其他东西中运行相同的 SQL,例如sqlplus?您可以在 ImportTransactions 中运行更简单的 SQL,还是针对另一个数据库运行相同的 SQL?
  • 刚刚发现了计划任务标签:这只是作为计划作业失败,还是从命令行运行时也会失败?如果它只是预定的工作,那么有一些额外的可能性可能是错误的,但它们似乎都不太可能。
  • 从 cmd 运行时会抛出同样的错误

标签: sql oracle vbscript scheduled-tasks


【解决方案1】:

以下修复对我有用:我创建了一个 .bat 文件并添加了以下行 cscript vbsFile.vbs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    相关资源
    最近更新 更多