ORACLE 數據庫以其優良的性能得到廣泛的稱贊。但是 ORACLE 客戶端不像 SQL Server 能方便地連接到數據庫。首先,要給客戶機裝一個 ORACLEL OLEDB 通訊軟件,該軟件可從如下地址獲得:
www.oracle.com
只有安裝了此軟件,客戶機才可以和 ORACLE 服務器通訊。為什麼 SQL Server 可以直接連到數據庫呢,因為微軟己經把“SQL Server 的通訊軟件”集成到 Windows 中了。裝好通訊軟件,我們要進行配置才可以正確的連接到服務器。打開 Net Configuration Assistance,出現以下畫面:
圖一
在“監聽程序配置”和“命名方法配置”兩項保默認,在“本地網絡服務名配置”要注意,選擇本地網絡服務名配置,保持默認到配置服務器這一步,如下:
圖二
注意此服務器的名字為 ORACLE 數據庫的 SID,我這裡是 mike。再下一步是選擇協議,一般為TCP,下一步是輸入主機名,為服務器的 IP 或 NETBIOS NAME。
圖三
要保證能 PING 通主機名。
圖四
下一步是測試,最好測試成功,如果不成功,從三個方面入手:
檢查 ORACLE 服務器是否啟動;
檢查 SID 是否正確;
和主機之間的網絡是否連通;
用戶名和密碼沒錯, 初始為scott/tiger;
現在用VC新建一個基於對話框的工程。我們用ADO連接數據庫,在 stdafx.h中加入:
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
在 App 的 Initialize() 函數中加入:
try
{
m_pConnection.CreateInstance(__uuidof(Connection));
m_pConnection->Open("Provider=MSDAORA.1;Data Source=mike;","scott","tiger",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->open(("select * from yourtables",
m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText));
其余和普通的ADO數據庫操作一樣......