MFC Access資料庫(ADO資料庫程式設計)

2021-07-10 23:26:14 字數 2523 閱讀 4993

最近專案需要使用到資料庫,專案本身使用的是mfc。於是選擇了簡單的access資料,本文將介紹本人如何在mfc使用的access資料庫。順帶提一句,本文使用的系統為win8.1,64位,編譯環境為vs2010和office2010,如出現連線問題,可以看看access的位數與系統位數是否一致。

本文是在ado(microsoft active data objects)介面下對資料庫進行操作的。ado封裝了oledb所提供的介面,使用者能通過oledb訪問和運算元據庫伺服器中的資料。ado易於使用,速度快,廣泛應用於關聯式資料庫、非關聯式資料庫、電子郵件、檔案系統等。

本文使用的是使用ado物件的方法連線資料庫,ado物件包含連線(connection)、命令(command)、記錄集(recordset)、引數(parameter)等物件。

連線物件用於連線資料來源,以及處理一些命令和事物。在使用ado訪問資料庫之前,必須先建立乙個connection物件,然後通過它開啟與資料庫的連線。

命令物件用於執行傳遞給資料來源的命令。

記錄集物件可操作來自資料來源的資料,通過recordset物件可對幾乎所有的資料進行操作。所有的recordset物件均使用記錄(行)和字段(列)進行構造。

引數物件代表引數或基於引數化的command物件的引數資訊。需要進行的操作在這些命令中只定義一次,但可以使用引數改變命令的細節。

1. 新建資料庫

本文使用adox來新建資料庫。adox是核心ado物件的擴充套件庫。它提供的附加物件可用於建立、修改和刪除模式物件,如表和過程。使用adox需要新增引用

#import "c:/program files/common files/system/ado/msadox.dll" rename_namespace("adox")

建立資料庫時檢查該資料庫是否已經存在,如果該資料庫已經存在,則return。

介紹乙個檢查檔案路徑是否存在的api函式,pathfileexists()。注意新增標頭檔案

//使用api函式pathfileexists()檢查路徑檔案是否存在

#include "shlwapi.h"

#pragma comment(lib,"shlwapi.lib")

cstring m_accessname;

m_accessname = "..\\users.accdb";//access資料庫路徑及名字

if(pathfileexists(m_accessname))

adox屬於com物件,需要對com進行初始化。

if(!afxoleinit())//這就是mfc初始化com庫 

建立access資料庫:

新建乙個catalog物件,然後呼叫它的create方法就可以了。

catalog是 adox 的乙個物件,它包含描述資料來源模式目錄的集合。

注意:用try...catch組合捕捉錯誤

adox::_catalogptr m_pcatalog = null;

cstring dbname="provider=microsoft.jet.oledb.4.0; data source=";

dbname=dbname+m_accessname;

trycatch(_com_error &e)

2. 連線資料庫

連線資料庫時,需要使用connection物件的open方法開啟與資料來源的連線。使用ado時需要引用支援ado元件的型別庫:

#import "c:/program files/common files/system/ado/msado15.dll" rename_namespace("ado20") rename("eof","adoeof") rename("bof","adobof")

using namespace ado20;

在標頭檔案中為類新增成員變數

//新增乙個指向connection物件的指標

_connectionptr m_pconnection;//智慧型指標,無需釋放

//新增乙個指向recordset物件的指標

_recordsetptr m_precordset;

初始化ado connection recordset物件

hresult hr;

try}

catch(_com_error e)///捕捉異常

關閉記錄集和連線

void exitconnect()

3. 在資料庫中新建表(有時間待續)

4. 獲取記錄集資料

5. 遍歷記錄集

6. 向記錄集中新增資料(在最後一行新增資料)

7. 修改記錄集資料

8. 刪除記錄集資料

9. 查詢記錄集中資料

ado讀取資料庫

當我們在使用ado運算元據庫的時候經常會碰到一些問題!例如資料庫為空我們就應該對是否為空做出判斷!variant t var var bstr t m precordset getcollect z controllersn if var.vt vt null else m list.setitem...

ADO 訪問資料庫

using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using system.window...

ADO資料庫示例

stdafx.h import c program files common files system ado msado15.dll no namespace rename eof nul adodlg.cpp coinitialize null connectionptr spconn uuid...