VC++连接远程Oracle数据库
1.如果主機A要連接遠程主機B的oracle數據庫,那么主機A和主機B都要安裝oracle數據庫,否則會提示找不到安裝程序異常(或者主機A安裝oralce客戶端程序),主機B要配置數據庫本地網絡服務名和監聽程序,用于對外網絡開放本地數據庫網絡服務和監聽遠程程序通過網絡連接本地數據庫。
2.oracle數據庫中用到的3個配置程序:Database Configuration Assistant 用于配置oracle數據庫,如果安裝過程中數據庫配置或者安裝出錯,可以直接刪除數據庫重新配置不用卸載軟件重新安裝;Net Configuration Assistant用于配置本機數據庫網絡監聽程序和數據庫網絡服務名,如果連接提示無法識別提供的sid等錯誤,可以直接刪除監聽程序重新配置并同時刪除本地網絡服務名重新配置;Net Manager用于查看Net Configuration Assistant中配置的本地網絡服務名和監聽程序;1個數據庫連接與操作程序:SQL Plus用于連接數據并實現數據系統配置與數據操作。
3.常用命名:cmd中輸入lsnrctl status用于查看當前數據庫網絡服務與監聽程序狀態,如果聽見程序為BLOCKED狀態則遠程無法連接,正常為READY狀態;如果連接不上遠程數據庫,可以通過此命令查看服務是否開啟;oracle數據庫插入時間日期,使用to_date('2013-07-05 23:56:25’, 'yyyy-mm-dd hh24:mi:ss’),設置系統時間日期顯示格式:alter session set nls_date_format=‘yyyy-mm-dd hh24:mi:ss’。
4.oracle 11g標準版vc++連接字符串:
strConnect.Format("Provider=OraOLEDB.Oracle.1;Password=%s;Persist Security Info=True;User ID=%s;\
?Data Source=\"(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = %s)(PORT = %s)) )(CONNECT_DATA = (SID = %s)))\"",
?m_sPwd, m_sUid, m_sHost, m_sPort, m_sSid);//123456 system 192.168.37,1521(默認端口),testdata(本地網絡服務配置服務名)
?try
?{
??::CoInitialize(NULL);//初始化com環境(必須,否則提示異常)
??m_pConnection.CreateInstance(__uuidof(Connection));
??m_pConnection->ConnectionTimeout = 10;// 設置連接超時10秒
??m_pConnection->Open(_bstr_t(LPCTSTR(strConnect)),"","",adModeUnknown);
??m_pConnection->CursorLocation = adUseClient;//設置使用客戶端連接(可以共享讀寫)
?}
?catch (_com_error e)
?{
??AfxMessageBox(e.Description());?
??//AfxMessageBox(e.ErrorMessage());
??return FALSE;
?}
?catch(...)
?{
??MessageBox("數據庫連接失敗!", "未知原因", MB_OK|MB_ICONERROR);?
??return FALSE;
?}
?
?
總結
以上是生活随笔為你收集整理的VC++连接远程Oracle数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GetCurrentDirectory(
- 下一篇: 飞秋的实现原理