VC++下封裝ADO類以及使用方法


操作系統:windows 7
軟件環境:visual studio 2008 、Microsoft SQL 2005
本次目的:介紹一個已經封裝的ADO類,簡單說明怎么導入使用

      首先聲明一下,這個封裝的ADO類是在【vc知識庫 】下載的,因為最近在數據庫課程設計,所以對vc++下使用ADO連接數據庫不是很了解,故若是本文有錯誤的地方的,請不吝指出。具體的ADO類各個封裝功能請進入【原文地址 】查看。在此僅介紹使用此ADO封裝類的入門,如連接數據庫,顯示記錄等。一個測試例子如下:

使用步驟:
1.先從【這里 】下載封裝的ADO類,可以用記事本之類的打開里面的文件,對於每個功能已經注釋的蠻詳細的;
2.准備數據庫,可以是SQL 2000 或更高的,在這里我是用SQL 2005,新建一個vc_sqlexample數據庫一個student表,格式如下:
 
3.具體的表內容可以隨便寫,然后新建MFC基於對話框工程(名稱為測試1),右鍵工程名,添加封裝的ADO類到工程里面;
4.初始化 COM 環境,添加以下代碼:

[cpp]  view plain  copy
 
  1. /* 測試1.h */  
  2. class C測試1App : public CWinApp  
  3. {  
  4.     public:  
  5.     virtual int ExitInstance();  
  6. }  
  7. /* 測試1.cpp */  
  8. BOOL C測試1App::InitInstance()  
  9. {  
  10.     CoInitialize(NULL);  
  11. }  
  12. int C測試App::ExitInstance()   
  13. {  
  14.     CoUninitialize();  
  15.     return CWinApp::ExitInstance();  
  16. }  


5.在對話框(工程基於對話框)頭文件添加"ado.h",在類的聲明里添加對象。並且在實現文件里面的OnInitDialog函數連接數據庫。

[cpp]  view plain  copy
 
  1. #include "ado.h"  
  2. class C測試1Dlg : public CDialog  
  3. {  
  4. protected:    
  5.     CAdoConnection m_adoConnection;  
  6.     CAdoRecordSet  m_adoRecordSet;  
  7. }  
  8.  /* 測試1Dlg.cpp : 實現文件 */  
  9. BOOL C測試1Dlg::OnInitDialog()  
  10. {  
  11.     if (m_adoConnection.ConnectSQLServer("127.0.0.1","vc_sqlexample","sa","wjs1314"))  
  12.     {     
  13.         m_adoRecordSet.SetAdoConnection(&m_adoConnection);  
  14.         m_adoRecordSet.SetCursorLocation();  
  15.         m_adoRecordSet.Open("student", adCmdTable);  
  16.         m_adoConnection.BeginTrans();  
  17.         UpdateRecord(TRUE);           
  18.     }  
  19.     else  
  20.     {  
  21.         MessageBox("數據庫連接失敗!");  
  22.     }  
  23. }  


6.為控件添加變量(右鍵控件添加變量),和一個顯示數據的函數,還有上一條記錄、下一條記錄的按鈕功能

[cpp]  view plain  copy
 
  1. class C測試1Dlg : public CDialog  
  2. {  
  3. public:  
  4.     COleDateTime m_strBirth;  
  5.     CString m_strBrief;  
  6.     CString m_strStuId;  
  7.     CString m_strName;  
  8.     CString m_strSex;  
  9.       
  10.     BOOL UpdateRecord(BOOL bLoad = TRUE);  
  11. }  
  12. BOOL C測試1Dlg::UpdateRecord(BOOL bLoad)  
  13. {  
  14.     if (m_adoRecordSet.GetRecordCount() < 1) return FALSE;  
  15.     if (bLoad)  
  16.     {         
  17.         if (!m_adoRecordSet.GetCollect("stuId", m_strStuId)  
  18.          || !m_adoRecordSet.GetCollect("stuName", m_strName)  
  19.          || !m_adoRecordSet.GetCollect("stuSex", m_strSex)  
  20.          || !m_adoRecordSet.GetCollect("birth", m_strBirth)  
  21.          || !m_adoRecordSet.GetCollect("brief", m_strBrief) )  
  22.         {}        
  23.         UpdateData(FALSE);  
  24.         return TRUE;  
  25.     }  
  26. }  
  27. void C測試1Dlg::OnBnClickedButton1()  
  28. {  
  29.     // TODO: 在此添加控件通知處理程序代碼  
  30.     UpdateData();  
  31.     if (m_adoRecordSet.MovePrevious())  
  32.         UpdateRecord();  
  33. }  
  34. void C測試1Dlg::OnBnClickedButton2()  
  35. {  
  36.     // TODO: 在此添加控件通知處理程序代碼  
  37.     UpdateData();  
  38.     if (m_adoRecordSet.MoveNext())  
  39.         UpdateRecord();  
  40. }  


7.啟動數據庫,運行編譯程序。

http://blog.csdn.net/akof1314/article/details/4657780 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM