VC使用UDL文件建立ADO連接

最近在改一個VC的項目,需要靈活的配置數據庫連接,我用到了數據鏈接文件,使用UDL文件必須在系統中先安裝Microsoft MDACWin 2000以後的版本中都自動包含了該組件。關於UDL的使用只強調兩點。

m_pConnection->ConnectionString = "File Name = my_datal.udl";   


這一句有兩個錯誤


1、
等於號左右的空格一定要去掉,即:

m_pConnection->ConnectionString = "File Name=my_datal.udl";


2、UDL

文件最好要寫絕對路徑,否則可能出現0X80030002的未知錯誤。即:

m_pConnection->ConnectionString = "File Name=D://my_datal.udl";

最好是使用

GetModuleFilename(NULL...)得到當前程序文件所在路徑,然後從中提取出所在路徑,我寫的連接部分代碼,UDL文件和程序可執行文件在同一目錄下。
  1. try
  2.     {
  3.         char dbfName[MAX_PATH];
  4.         GetModuleFileName(NULL,dbfName,MAX_PATH);
  5.         char *pstr = strrchr(dbfName,'//');
  6.         if (pstr != NULL)
  7.         {
  8.         *pstr = '/0';
  9.         strcat(dbfName,"//conn.udl");
  10.         }
  11.         CString sConn;
  12.         sConn.Format("File Name=%s",dbfName);
  13.         hr = m_pConnection.CreateInstance("ADODB.Connection");///創建Connection對象
  14.         if(SUCCEEDED(hr))
  15.         {
  16.             m_pConnection->Open(_bstr_t(sConn),"","",adModeUnknown);
  17.             m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb","","",adModeUnknown);///連接數據庫
  18.         }
  19.     }
  20.     catch(_com_error e)///捕捉異常
  21.     {
  22.         CString errormessage;
  23.         errormessage.Format("連接數據庫失敗!/r/n錯誤信息:%s",e.ErrorMessage());
  24.         AfxMessageBox(errormessage);///顯示錯誤信息
  25.         return FALSE;
  26.     } 



 

發佈了22 篇原創文章 · 獲贊 8 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章