本人意圖將資料庫中的內容加入樹型控制項中,通過建立資料庫,再與樹型控制項相連,實現資料庫的訪問。查詢結構清晰明了,操作方便。
現將其方法闡述如下:
1、 建資料庫:建立access資料庫,資料庫結構和內容見程式包access檔案。
2、 建立單文件不基於資料庫支援的應用程式工程,檢視類繼承於cformview,本程式
工程名ppp,檢視類名為cpppview。
3、 建立資料庫集,資料來源採用dao連線,繼承於cdaorecordset,類名為 cshengset
4、 在stdafx.h檔案中加入支援dao連線的資料源頭檔案
#include // mfc core and standard components5、在pppview.h中加入資料集標頭檔案中。#include // mfc extensions
#include // mfc automation classes
#include //加入行,實現本檢視類對access資料庫的訪問
#include // mfc support for internet explorer 4 common controls
#ifndef _afx_no_afxcmn_support
#include // mfc support for windows common controls
#endif
#include"shengset.h"同時定義資料集類變數
public:6、 在pppdoc.h中加入資料集標頭檔案中。cshengset *m_shengset;
#include"shengset.h"同時定義資料集類變數
public:cshengset m_shengset;
cformview::oninitialupdate();cpppdoc* pdoc = (cpppdoc*)getdocument(); //得到指向文件類指標
m_shengset=&pdoc->m_shengset;//得到資料庫指標
void cpppview::oninitialupdate()最終結果如圖1左邊視窗所示:}
10、 插入對話方塊資源(formview),建立該對話方塊的新類cshengview,繼承於crecordsetview,資料集選擇第3步資料集。同時在對話方塊中加入編輯框以顯示資料記錄。同時在shengview.h標頭檔案中加入以下標頭檔案,
#include"pppdoc.h"11、 在mainfrm類中定義#include "shengset.h"
public:該**實現本框架兩個視窗的顯示。至此本程式達到如下圖效果:csplitterwnd m_wndspmain;
運用嚮導加入oncreateclient()函式和以下**實現資料記錄顯示
bool cmainframe::oncreateclient(lpcreatestruct lpcs, ccreatecontext* pcontext)
if (!m_wndspmain.createview(0, 0, runtime_class(cpppview),
csize(180, 200), pcontext))
if (!m_wndspmain.createview(0, 1,
runtime_class(cshengview), csize(100,100), pcontext))
return true;
}
圖一12、 此時還不能實現資料的訪問功能,在pppdoc .h 檔案中加入
public:14、 運用嚮導在cshengview.cpp中加入ontimer()函式,該函式根據樹型控制項選擇項內容更新記錄內容,**如下:cstring name;
13、 運用嚮導在類cidview的控制項idc_tree1加入onselchangedtree1()函式,函式**如下,**實現的功能是將將樹型控制項的選擇項名稱賦給pdoc->name。
void cidview::onselchangedtree1(nmhdr* pnmhdr, lresult* presult)
*presult = 0;
}
void cshengview::ontimer(uint nidevent)15、 在cshengview.cpp中的oninitialupdate()函式中加入以下**,該**每10毫秒觸發wm_timer事件,實現記錄的實時更新。 void cshengview::oninitialupdate()}
總結:本方法以樹型控制項形式實現視覺化資料庫瀏覽,程式設計實現簡單,實際操作方便。
用資料庫實現樹型結構
做 的時候有時需要實現乙個樹形列表,類似目錄那樣的。最好的建立方法就是採用指向父節點的指標的結構建立表。表的結構如下 表名為xx 字段 型別 null 預設 注釋 cidint 11 否 主鍵 pid int 11 否 0 父類別的cid,0表示該項為頂層類別。name varchar 64 否 類...
訪問資料庫 訪問資料庫
程式執行的時候,資料都是在記憶體中的。當程式終止的時候,通常都需要將資料儲存到磁碟上,無論是儲存到本地磁碟,還是通過網路儲存到伺服器上,最終都會將資料寫入磁碟檔案。而如何定義資料的儲存格式就是乙個大問題。如果我們自己來定義儲存格式,比如儲存乙個班級所有學生的成績單 名字成績 michael99 bo...
通過ADO控制項訪問資料庫示例
下面以microsoft office access資料庫為例,講解通過ado控制項訪問資料庫的方法。這種方法基本不用編寫 就可以完成對資料庫的訪問,非常方便。1 在access 中建立資料庫 student.mdb 並新增表 stu info 如下圖 這裡的欄位名使用了中文,只是為了教學方便,建議...