我的一个客户正在运行一个旧的 VB 应用程序。在这段代码中抛出了一个异常:
cn=GetIndexDatabaseConnectionString()
sSql="SELECT * FROM Arh_Naroc WHERE StNarocila = '" & isci & "'"
rs=CreateObject("ADODB.Recordset")
Call rs.Open(sSql,cn)
异常发生在rs.Open()
函数中。“出现错误号 440。”
这是 KOFAX 引擎的 SBL 脚本,它已有多年历史。整个 SW 是从旧的 XP 计算机转移到 Windows 7 的,看起来到处都是问题。
有人可以帮我确定这里有什么问题。至少如果我能在 msgbox 中得到正确的错误消息将是最有帮助的。
编辑:这是连接字符串函数。
Function GetIndexDatabaseConnectionString
Dim objXmlDocument As Object
Dim objXmlGlobalSettingsFileParh As Object
Dim objXmlIndexDatabaseConnectionString As Object
Dim strGlobalSettingsFilePath As String
Dim strTemp As String
Const strSettingsFilePath = "C:\Data\LocalDocsDistibutingSystem\Settings.xml"
Set objXmlDocument = CreateObject("MSXML2.DOMDocument")
objXmlDocument.Load strSettingsFilePath
Set objXmlGlobalSettingsFileParh = objXmlDocument.selectSingleNode("DocsDistributingSystem/GlobalSettingsFilePath")
strGlobalSettingsFilePath = objXmlGlobalSettingsFileParh.childNodes(0).Text
Set objXmlGlobalSettingsFileParh = Nothing
Set objXmlDocument = Nothing
Set objXmlDocument = CreateObject("MSXML2.DOMDocument")
objXmlDocument.Load strGlobalSettingsFilePath
Set objXmlIndexDatabaseConnectionString = objXmlDocument.selectSingleNode("DocsDistibutingSystem/AscentCapture/IndexDatabase/ConnectionString")
strTemp = objXmlIndexDatabaseConnectionString.childNodes(0).Text
Set objXmlIndexDatabaseConnectionString = Nothing
Set objXmlDocument = Nothing
GetIndexDatabaseConnectionString = strTemp
End Function
这是来自 Settings.xml 的相关行:
<ConnectionString> Provider=OraOLEDB.Oracle;Data Source=LINO2;User Id=****;Password=****;OLEDB.NET=True; </ConnectionString>
真实数据用 * 屏蔽。与 Oracle 的连接似乎没问题。我使用提供程序和连接数据创建了 ODBC 并将服务器链接到 sql。有用。计算机上必须缺少安装的东西才能使 ADODB 正常工作...
连接似乎工作正常。初始化时没有错误。错误发生在 Call rs.Open(sSql, cn) 中。我想要的只是发生错误时的详细错误消息......非常感谢。