程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> VC++ >> 關於DAO數據庫編程的幾點經驗

關於DAO數據庫編程的幾點經驗

編輯:VC++

作者:李建國
版權所有:廣東南海市昭信科技有限公司-李建國
轉載請與作者聯系

前言

本文是作者在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;
db.Open();
MessageBox(db.m_answerA);
db.Close();


這裡假設我的數據庫表裡有answerA字段.

二、如何在數據庫沒有靜態綁定其他控件的程序手工加入靜態綁定.

仍以上面為例.先把先前的按鈕及其消息處理函數刪掉.加入一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;
rec->Open();


2.4 銷毀:響應對話框WM_CLOSE消息,加入消息處理代碼:

rec->Close();
delete rec;


2.5 測試:編譯運行,就可以看到EDIT框裡出現了數據庫的內容.唯一不足的是不能自動更新顯示.需手工UpdateData(0);

三、如何確保上述程序拷到別人機裡仍可運行.(數據庫也拷在同一目錄)

把剛才mydb類GetDefaultDBName()函數內容改為:

char str[255];
GetCurrentDirectory(255,str);
strcat(str,"\\my.mdb");
return _T(str);


後記

  雖然DAO逐漸被ADO所取代,但仍舊有許多網友通過DAO來學習VC下的數據庫編程,以上是自己摸索所得的經驗,希望對初學者有所幫助,有不妥之處請各位大蝦指正!
歡迎交流[email protected]

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved