前言
本文是作者在DAO數據庫編程中積累的經驗,希望對使用DAO進行開發的朋友有所幫助。
一、如何在新建時沒選數據庫支持的程序中加入數據庫支持
以對話框DAO-Access為例:
1.1用類向導新建類.Name:"mydb", Base Class:"DaoRecordset",選擇正確的數據源和表.
注:vc6無法直接對access2000進行支持,要用的話先轉換為97版才行。
1.2在mydb頭文件加入#include"afxdao.h".在對話框類頭文件加入#include"mydb.h".
1.3測試:在對話框類加入一按鈕,在其響應函數內加入如下代碼:
mydb db;
這裡假設我的數據庫表裡有answerA字段.
db.Open();
MessageBox(db.m_answerA);
db.Close();
二、如何在數據庫沒有靜態綁定其他控件的程序手工加入靜態綁定.
仍以上面為例.先把先前的按鈕及其消息處理函數刪掉.加入一EDIT控件.
2.1 聲明:在對話框頭文件的AFX_DATA內加入:mydb* rec;如下:
//{{AFX_DATA(CAaaDlg)
enum { IDD = IDD_AAA_DIALOG };
mydb* rec;
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA
2.2 綁定:在類向導為edit控件添成員變量m_amswerA.(在向導中選擇)
2.3 初始化:在對話框構造函數內加入
rec=new mydb;
2.4 銷毀:響應對話框WM_CLOSE消息,加入消息處理代碼:
rec->Open();
rec->Close();
2.5 測試:編譯運行,就可以看到EDIT框裡出現了數據庫的內容.唯一不足的是不能自動更新顯示.需手工UpdateData(0);
delete rec;
三、如何確保上述程序拷到別人機裡仍可運行.(數據庫也拷在同一目錄)
把剛才mydb類GetDefaultDBName()函數內容改為:
char str[255];
GetCurrentDirectory(255,str);
strcat(str,"\\my.mdb");
return _T(str);
後記
雖然DAO逐漸被ADO所取代,但仍舊有許多網友通過DAO來學習VC下的數據庫編程,以上是自己摸索所得的經驗,希望對初學者有所幫助,有不妥之處請各位大蝦指正!