2013-10-07 101 views
0

我有一個使用ADO連接到SQL Server數據庫的舊VB6應用程序,如:依賴VB6的連接到Oracle數據庫

Dim cnServer As New ADODB.Connection 
cnServer.Provider = "sqloledb" 
sConnectString = "Server=" & txtServer.Text & ";" & _ 
       "Database=" & txtDatabase.Text & ";" & _ 
       "User ID=" & txtUserID.Text & ";" & _ 
       "Password=" & txtPassword.Text & ";" & _ 
       "Connect timeout=10" 
cnServer.Open sConnectString 

...這一直工作。但是現在我需要修改它以連接到Oracle 11g數據庫。我發現this article和修改代碼:

​​

...但是當我運行它,我得到讀取3706, Provider cannot be found. It may not be properly installed.這發生在我的開發VM(其中一個錯誤 - 不要笑 - 仍然是在Win2K Pro上)以及我的測試機(使用Win XP)。

一些進一步的搜索表明oracore11.dll是一個依賴項,所以我去了Oracle的下載站點,並將這個DLL作爲包含我所認爲的全套Windows相關編碼工具的.zip文件的一部分。然而,即使我將這個DLL放在與我的VB6可執行文件相同的文件夾中,該錯誤仍然會發生。當我嘗試註冊該DLL時,該嘗試只會產生另一個錯誤:The specified module could not be found.

在進一步發生可能是錯誤路徑或無法解決的問題之前,我首先應該檢查並看到最好/最簡單的方式讓VB6應用程序首先連接到Oracle。我的目標是讓這個VB6應用程序儘可能便攜,不需要任何預先安裝的軟件包工作,並且可以很容易地將.exe的最小集合傳遞給.exe本身。 (僅供參考,此VB6應用程序不是商業分佈式產品,只是我部門工作中的內部使用的測試工具。它需要平面文件固定寬度數據,解析它,然後生成SQL代碼以將其插入。將DB)

回答

1

要配置Oracle數據庫即時,你必須:

  1. 安裝Oracle數據庫即時客戶端,你的系統上的ODBC驅動程序;
  2. 設置TNS_ADMIN環境變量;
  3. 爲您的客戶端配置一個tnsnames.ora配置文件。

請參閱本link,進一步的細節...

+0

我的目標是有這個VB6應用程序儘可能隨身攜帶,不需要任何預先安裝包時,和具有最小集的依賴關係很容易被.exe本身傳遞。此客戶端軟件包是獲取VB6應用程序連接到Oracle數據庫的必要且唯一的方法嗎? – JDM

+0

非常多......並且您可以算作自己的幸運,因爲之前支持的方式是在每個需要連接到Oracle數據庫的客戶端上安裝稱爲oracle客戶端工具的exe文件。現在我們只需要獲得名爲Oracle Database Instant的zip文件,並從那裏配置oracle連接... –

+0

仍然沒有運氣。我已經更新了一些在線資源的代碼,所以最好把我變成一個新的問題。 – JDM