【发布时间】: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