简介:
将树中的每一个项目作为数据库中的一条记录(ACCESS2000),将程序启动时,对数据库进行读操作;创建树的各个项目时,是对数据库进行读操作,每次的读取,都是在可是查寻符合条件的记录,并将其一一添加到树中!
实现方法:
准备:
使用ACCESS2000,创建一个数据库,名字为City.mdb(我们将制作一个关于省与市的树,特别适合通讯录);在数据库中创建一表,表名为TreeItem,字段内容与类型如下图:
ID: 索引号码(可有,可无) Name: 项目名称(必须) ParentItem: 父项名称(必须) SecNum: 电话区号(可有,可无)
输入一些原始数据.数据库已经准备好,那我们就进行实地的编程(www.cppentry.com)阶段.
程序实现:
创建一个基于对话框的工程---TreeData
一.ADO的引入和初始化
由于在程序中,我使用了ADO来连接和操作数据库,所以要进行以下操作:
1.在Stdafx.h中添加引作ADO的代码:
//-------------------------------------------- #import "c:\program files\common files\system\ado\msado15.dll" \ no_namespace \ rename("EOF","adoEOF") //-------------------------------------------- |
2.在TreeData.h中声明两个私有变量:
public: _ConnectionPtr m_pTreeConn;//连接创建 private: CString TreeConnString;//连接字符串 |
3.在CTreeDataApp的构造函数CTreeDataApp中添加如下代码:
//------------------------------------------- m_TreeConnString=_T("Provider=Microsoft.Jet.OLEDB.4.0;") _T("Data Source=DataBase\\City.mdb;"); //------------------------------------------- |
4.在CTreeDataApp的初始化函数中添加如下代码:
//-------COM初始化-------------------------------- AfxOleInit(); /******************连接通讯录数据库********************/ HRESULT hRes; try { hRes=m_pTreeConn.CreateInstance(_T("ADODB.Connection")); m_pTreeConn->ConnectionTimeout = 8; //连接ACCESS2000 hRes=m_pTreeConn->Open(_bstr_t((LPCTSTR) m_strTelDataSource), _T(""),_T(""),adModeUnknown); } catch(_com_error e)///捕捉异常 { CString errormessage; errormessage.Format(_T("连接TelBook.mdb数据库失败!\r\n错误信息:%s"),e.ErrorMessage()); AfxMessageBox(errormessage);///显示错误信息 return FALSE; } |
|