C++使用ADODB串連資料庫

來源:互聯網
上載者:User

標籤:err   height   cti   system   space   nec   rms   stat   import   

  1 用的是ADODB,所以在StdAfx.h檔案裡面的   #include <afxwin.h> 後面加這句話  2 #import "C:\program files\common files\System\ado\msado15.dll" no_namespace   3  rename("EOF", "adoEOF")  4   5 //CDataManage.h  6 定義變數,資料結構(與資料庫中表的欄位對應,即儲存資料表中欄位的資訊)及函數(CDataManage()建構函式,~CDataManage(){解構函式,Break()斷開資料庫連接,ConnectDBase(char* DBPath)  //串連資料庫,ReadDatabaseInfo(ImageInf imageinfo)//讀取資料  7   8 )  9  10  11 //CDataManage.cpp 12 #include "stdafx.h" 13 #include "CDataManage.h" 14  15 extern char g_ImageDBPath[256];//g打頭的為全域變數,儲存映像路徑的變數 16 CDataManage::CDataManage(){ //建構函式 17     m_pConnection=NULL; //初始化連線物件NULL 18 } 19  20 CDataManage::~CDataManage(){//解構函式 21      22     if(m_pConnection!=NULL) 23     { 24       if(m_pConnection->State)  25             m_pConnection->Close(); 26     } 27     m_pConnection=NULL; 28 } 29 void CDataManage::Break(){//斷開資料庫連接 30     if(m_pConnection!=NULL) 31     { 32       if(m_pConnection->State)  33             m_pConnection->Close(); 34     } 35     m_pConnection=NULL; 36 } 37  38 bool CDataManage::ConnectDBase(char* DBPath){            //串連資料庫 39 //    AfxOleInit(); 40     HRESULT hr;  //建立對象  41     try  42     {  43         hr = m_pConnection.CreateInstance("ADODB.Connection");  //建立Connection對象  44         if (SUCCEEDED(hr))         //建立成功  45         {  46         hr = m_pConnection->Open(DBPath,"","",adConnectUnspecified);  47  //DBPath是字串類型的資料庫存放路徑,寫時要加雙引號 48         //串連資料庫注意DataSource路徑的寫法  49         //AfxMessageBox("串連資料庫成功");  50         }  51         m_pRecordset.CreateInstance("ADODB.Recordset"); 52     }  53     catch(_com_error e) //聯結異常處理 54     {  55     CString errorMsg;  56     errorMsg.Format("串連資料庫失敗\r\n錯誤資訊:%s",e.ErrorMessage());  57 //    AfxMessageBox(e.Description());    58     return false;//顯示錯誤資訊  59     }  60     return TRUE;  61 } 62  63 int CDataManage::ReadDatabaseInfo(ImageInf imageinfo){//讀取資料 64     char Sql[100]; 65     CString date; 66     CString UBirth; 67     int year,month,day; 68     _variant_t var; 69     sprintf(Sql,"select * from ImageTable where 資料庫字欄位=‘%s‘",ImageTable.資料庫字欄位資料); 70     m_pRecordset->Open(Sql,m_pConnection.GetInterfacePtr(), adOpenStatic, adLockOptimistic, adCmdUnknown); 71  72     if(m_pRecordset->GetRecordCount()>0){//資料庫中讀取到資料 73         m_pRecordset->MoveFirst();  74         while(!m_pRecordset->adoEOF){ 75             _variant_t var; 76            var=m_pRecordset->GetCollect(""); 77      78      79         if(m_pRecordset->GetState()==1){ 80             m_pRecordset->Close(); 81         } 82         return 1; 83     } 84      85     if(m_pRecordset->GetRecordCount()>0) { 86         var=m_pRecordset->GetCollect("資料庫欄位名"); 87         g_ImageDBPath=(char)var;//g_ImageDBPath全域變數裡面是圖片的路徑 88         } 89     } 90     //下面幾行是迴圈讀取資料庫中的記錄,根據情況添加 91     /*    if(m_pRecordset->GetRecordCount()>0) 92             imageID=10000+m_pRecordset->GetRecordCount()+1; 93         else imageID=10000+1; 94          */ 95           96          97 } 98      99     100     
View Code

 

C++使用ADODB串連資料庫

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.