クライアントの1つで実行されている古い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コンピューターからWindows7に転送され、どこにでも問題があるようです。
ここで何が問題なのかを判断するのを手伝ってくれる人がいますか。少なくとも、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が機能するには、コンピュータにインストールされているものが不足している必要があります...
接続は正常に機能しているようです。初期化時にエラーは発生しません。エラーは、呼び出しrs.Open(sSql、cn)で発生します。エラーが発生したときの詳細なエラーメッセージだけが必要です...ありがとうございます。