我在本地運行Oracle 11g數據庫。我有一個小程序通過VC++的OLEDB在代碼中連接到它(它只運行一些數據庫測試,我確信在進入真實的事物之前我已經掌握了所有的基礎知識)。代碼中的連接信息僅包括提供者,實例名稱,用戶名和密碼。所有這些方面工作正常。如何設置OLEDB連接到遠程數據庫?
//For example, both these ways of connecting work:
result = dataSource.Open(DATABASE_PROVIDER, DATABASE_NAME,
DATABASE_USER_NAME, DATABASE_USER_PASSWORD);
result = dataSource.OpenFromInitializationString(L"Provider=OraOLEDB.OracleDataSource=orcl;User ID=SYSTEM;Password=admin;");
我現在想這個程序發送到其他計算機在我的網絡,並從那裏運行它,連接到我的數據庫我的本地機器上。
我該如何去將其他計算機連接到我的數據庫,以便代碼能夠理解?
我一直在試圖通過IP本地連接而不是「本地主機」,確定我可以簡單地使用相同的代碼和客戶端。在這方面,我嘗試了一些沒有成功的事情:
- 我試圖修改連接字符串以將「數據源」更改爲我的IP,但它無法連接。
- 我曾嘗試從其他連接字符串示例中添加一些參數,但它們不適用於Oracle並且被忽略。
- 我也嘗試修改tnsnames.ora和listener.ora將本地主機更改爲IP地址,但我知道這並不起作用,因爲如果我輸入垃圾它仍會連接。
任何人都有知識可以幫忙嗎?
您正在安裝代碼的其他計算機是否安裝了Oracle客戶端?如果是這樣,哪個版本(即時客戶端,完整客戶端等)?這些機器是否有tnsnames.ora條目,指向要連接的任何數據庫? – 2012-01-13 22:42:51
他們沒有在其他機器上安裝過任何東西,但我確實希望安裝它們。在這些客戶端中修改我的tnsnames.ora會解決我的問題嗎?如果是這樣,爲什麼不在本地機器上調用tnsnames.ora在本地更改任何內容? – Paradoxyde 2012-01-14 06:19:28