一、文档视图结构
文档类(CDocument):存储加载(读写)数据
截图类(CView):显示和修改数据
1)单文档
a)文档模板:把框架窗口、文档、视图关联在一起
b)单文档(CDocument):
OnNewDocument(),第一次新建窗口调用,后面每次“新建”,自动调用次函数
DeleteContents(),做一些释放资源的操作,后面按“新建”,新建前先调用此函数
c)框架类可以认为是视图类的容器
2)各类相关访问
a)在类视图,如何访问文档对象指针 CView::GetDocument
CDocument* GetDocument() const;
二、文档序列化(二进制操作文件CArchive)相当于Qt QDataStorm
序列化:以二进制方式写文件
反序列化:以二进制方式读文件
1)写文件
a)创建文件对象 CFile
b)以写方式打开CFile::Open
c)创建序列化对象,并且和文件关联在一起CArchive
CArchive::Close
e)往数据流写数据(相当于往文件写数据)
f)关闭文件CFile::Close
2)读文件
a)创建文件对象 CFile
b)以读方式打开CFile::Open
c)创建序列化对象,并且和文件夹关联在一起 CArchive
CArchive::load从文档文件装载数据。 CFile只读
d)往数据流读数据(相当于往文件读数据)
ar >> a >> b >> c
e)断开数据流和文件的关联 CArchive::Close
f)关闭文件 CFile::Close
三、文档视图案例
1)文档类自带序列化操作函数 Serialize()
void
2)学生管理xit
a)定义一个学生类Stu
b)文档类存储数据,视图类修改和显示数据
1)从尾部添加元素 CList::AddTail
2)获得此列表尾部元素的位置 CList::GetTailPosition
3)获取上一个元素 CList::GetPrev
4)获取下一个元素 CList::GetNext
5)获取当前首元素位置 CList::GetHeadPosition
6)获取最后一个元素位置 CList::GetTailPosition
7)获取指定元素位置 CList::GetAt
8)移除头结点元素(并没有释放空间)CList::REmoveHead
c)视图的基类是 CFormView
d)重写文档类 DeleteContents(),做一些释放资源的操作,每次按“新建”,新建前先调用此函数
四、数据库编程
1)安装mysql
a)安装MySQL服务器
b)MySQL odbc驱动
2)odbc层次图
a)odbc一套标准接口(内部通过sql语句操作数据库,用户就算是不懂sql语句也可以借助odbc)
b)数据源
3)如何创建数据源(MySQL只能是快照)
a)快照(Snapshot)记录集:每次操作更新查询后才更新
1)DoFiledExchange()自动把数据库的字段和变量相关联
2)GetDefaultConnect()获取数据库连接信息
3)GetDefaultSQL()获取数据库连接的表
b)动态(Dynaset)记录集:每次操作自动更新(添加记录外)
1)OnIitialUpdata()主要作初始化功能
4)应用程序情况
a)CRocordset的子类,主要是对数据库进行相应操作
b)CFormView的子类,显示数据库的视图
1)OnIitialUpdata()主要作初始化功能