我與使用遠程數據對象(RDO)2.這裏連接到Oracle11g的服務器的舊的Visual Basic 6應用程序的工作是我的代碼:服務器名稱自敗
Dim rdoCon As New rdoConnection
rdoCon.Connect = "DRIVER={Microsoft ODBC for Oracle};SERVER=os11atst.world;"
Debug.Print rdoCon.Connect '1
'Prompt the user to enter credentials and connect to the server:
rdoCon.EstablishConnection rdDriverComplete, False
Debug.Print rdoCon.Connect '2
的第一Debug.Print
給我這個(預期):
DRIVER={Microsoft ODBC for Oracle};SERVER=os11atst.world;
然而,第二個給了我這樣的:
DRIVER={Microsoft ODBC for Oracle};UID=username;PWD=password;
即使連接正常工作,SERVER
參數也會丟失。這對我來說是個問題,因爲我需要知道連接到的是什麼服務器。我不能簡單地使用第一個字符串中的信息,因爲用戶(並且應該)能夠在提示輸入用戶名和密碼的情況下更改服務器。
此問題來自於無處,可能與從Windows XP升級到7有關。以前該程序沒有表現出這種行爲,或者老年同事告訴我。雖然不是100%確定這是正確的。
如何防止服務器名稱的缺失?除了查看連接字符串之外,我能否以任何其他方式獲取服務器的名稱?
我對包括升級到比RDO更新的解決方案不感興趣。由於外部原因,我堅持使用它。
RDO是一個從過去的爆炸。把它放在一個變量中? '「..SERVER =」&strLastEnteredOrDefaultServerName' –
@Alex K:我知道它已經很老了,但是這個程序對很少用戶來說是值得改造的......理論上我可以把它放在一個字符串中,但這需要用代碼搞亂一些代碼(取代自動提示),我想盡可能少地觸碰這個老的野獸,以防止任何未解決的問題。 – Anders