2012-07-02 47 views
0

我試圖使用C++連接到Oracle,但它給我錯誤,指出找不到DBManger.h。我也嘗試使用occi.h,但得到了同樣的錯誤未找到或沒有這樣的目錄。如何在C++中連接到Oracle?

我已經安裝了Oracle 11g,它還包含OCI Liabraries。

我找到了OCI庫所在的特定文件夾。在我的系統中,他們位於E:\app\user\product\11.1.0\db_1\OCI\lib\MSVC\vc8

我還設置了從Oracle主頁開始的路徑。但是,我的程序仍然無法找到頭文件。

任何幫助將不勝感激?我搜索了很多,但發現相同的解決方案,說明找到OCI庫可用的文件夾。我張貼我的代碼下面寫在Visual Studio 2008下:

我已經寫了一個非常小的腳本,只包括頭文件。甚至沒有完成的連接:

#include <occi.h> 
#include <iostream> 
using namespace oracle::occi; 
using namespace std; 

class DataBaseConnectionTest 
{ 
public: 
void test() 
{ 
    cout<<"Hello from test"<<'\n'; 
} 
}; 
void main() 
{ 
DataBaseConnectionTest *dbc=new DataBaseConnectionTest(); 
dbc->test(); 
} 

回答

2

修改您的項目屬性,添加E:\ APP ... VC8目錄名加成include目錄。它在C++/General下。沒有必要在每一個\的一倍。

無論如何,您可能還需要對OCI庫文件進行類似的處理。包含文件只是難題的一半,另一半是LIB。

+0

但是,該vc8文件夾只包含.dlls.and .lib文件沒有.h文件!只有oraocci11.lib和oraocci11d.dlls可用。 –

+0

即使提供完整的路徑!它不工作。 VC8文件夾只包含.dlls和.lib文件,如oraocci11.lib和oraocci11d.dlls。只有8個文件包括manifest和.sym文件。 –

+0

是否有任何內容OCI \ include? –

1

您可以考慮OTL作爲OCI的替代方案。那麼你的代碼可以更便攜。我很多年前就使用過它,連接SqlServer,並且對乾淨的設計和原始速度感到驚訝(比MFC + ODBC更快......)。另外,我有一個問題,謝爾蓋立即給我提供幫助。

+0

我下載了otlv4.h頭文件,並在我的程序中提供了完整的路徑來查找該文件。下載後,我只有一個otlv4.h頭文件,沒有別的。我的代碼被編譯,現在我正在尋找另一個步驟,即連接。請讓我知道如果我正朝着正確的方向前進。 –

+0

所有功能都在該文件中。現在,您必須使用DSN連接到您的數據庫(使用ODBC GUI界面來定義一個,然後在您的連接字符串中使用DSN = ...,UID = ...; PWD = ...)或Goggle以使用DSN連接(即你傳遞驅動程序= ...在你的連接字符串) – CapelliC