第12章高级编程
第12章 高级编程
数据库编程 数据库基础知识 开放数据库互联ODBC ODBC体系结构 ■ODBC调用模式 MFC的ODBC类数据库应用 MFC的DAO类数据库应用 2.网络编程 网络开发基础 使用网络浏览器控件
1. 数据库编程 • 数据库基础知识 • 开放数据库互联ODBC ◼ ODBC体系结构 ◼ ODBC调用模式 • MFC的ODBC类数据库应用 • MFC的DAO类数据库应用 2. 网络编程 • 网络开发基础 • 使用网络浏览器控件
数据库基础知识 数据库DB、数据库关联系统DBMS、数据库开放系统的概念 2.表、字段、记录的概念 3.索引、键、主键的概念 4.关系型数据库表之间的关联 5.结构化查询语言SQL DBMS提供的标准接口,通过接口,用户可以执行访问和操作 数据库的操作 分为数据定义语言DDL(创建表、索引等)和数据操作语言 DML(读取、更新数据库等操作)
数据库基础知识 1. 数据库DB、数据库关联系统DBMS、数据库开放系统的概念 2. 表、字段、记录的概念 3. 索引、键、主键的概念 4. 关系型数据库表之间的关联 5. 结构化查询语言SQL • DBMS提供的标准接口,通过接口,用户可以执行访问和操作 数据库的操作 • 分为数据定义语言DDL(创建表、索引等)和数据操作语言 DML(读取、更新数据库等操作)
ODBC的体系结构 应用程序(如 Visual c++) ODBC接口 ODBC驱动程序管理器 ODBC ODBC ODBC 驱动程序驱动程序驱动程序 数据源[数据源数据源
ODBC的体系结构 应用程序(如Visual C++) ODBC驱动程序管理器 ODBC 驱动程序 ODBC 驱动程序 ODBC 驱动程序 数据源 数据源 数据源 ODBC接口
ODBC的调用模式 应用程序 应用程序层:调用ODBC接口, 提交SQL语句,接收执行结果 ODBC API调 数据 用 2.驱动程序管理器:管理、装载合 驱动程序管理器 适的驱动程序 3.驱动程序:动态链接库,提交 ODBC驱动程序 数据 SQL给数据源并返回结果给应用 调用 程序 ODBC驱动程序 4.数据源:数据库、操作系统、 DBMS的总和 特定数据库 数据 5.创建ODBC数据源,数据源指明 命 将要操作的数据库文件位置以及 本地数据库文件 对应的DBMS,需要通过控制面 板完成
ODBC的调用模式 1. 应用程序层:调用ODBC接口, 提交SQL语句,接收执行结果 2. 驱动程序管理器:管理、装载合 适的驱动程序 3. 驱动程序:动态链接库,提交 SQL给数据源并返回结果给应用 程序 4. 数据源:数据库、操作系统、 DBMS的总和 5. 创建ODBC数据源,数据源指明 将要操作的数据库文件位置以及 对应的DBMS,需要通过控制面 板完成 ODBC 驱动程序 调用 应用程序 驱动程序管理器 ODBC驱动程序 本地数据库文件 ODBC API 调 用 特定数据库 命令 数据 数据 数据
MFC的ODBC类数据库应用 创建数据库及表,建立ODBC数据源 2.生成支持ODBC的项目,在向导第二步选择支持类型和数据源 3.在视图类对话框面板中添加控件并进行布局,为控件(通常为编 辑控件)关联成员变量(只能选择系统指定好的变量,它们与数 据库中的字段相关联) 4.分析 派生自 CRecordSet的类封裝了操作数据库的大部分功能,如移 动、添加、删除记录等 文档类中定义了记录集对象,在视图类中定义记录集对象指针 m pSet并指向文档类的记录集对象 显示数据时,当前记录→拷贝到成员变量→通过数据交换显示 于控件中,保存数据时,通过数据交换将控件的值拷贝至成员 变量中,执行写入或更新操作,将数据存入数据库
MFC的ODBC类数据库应用 1. 创建数据库及表,建立ODBC数据源 2. 生成支持ODBC的项目,在向导第二步选择支持类型和数据源 3. 在视图类对话框面板中添加控件并进行布局,为控件(通常为编 辑控件)关联成员变量(只能选择系统指定好的变量,它们与数 据库中的字段相关联) 4. 分析 • 派生自CRecordSet的类封装了操作数据库的大部分功能,如移 动、添加、删除记录等 • 文档类中定义了记录集对象,在视图类中定义记录集对象指针 m_pSet并指向文档类的记录集对象 • 显示数据时,当前记录→拷贝到成员变量→通过数据交换显示 于控件中,保存数据时,通过数据交换将控件的值拷贝至成员 变量中,执行写入或更新操作,将数据存入数据库
MFC的DAO类数据库应用 创建数据库及表,保存在数据库文件中 2.生成支持DAO的项目,在向导第二步选择支持类型和数据库文件 3.在视图类对话框面板中添加控件并进行布局,为控件(通常为编 辑控件)关联成员变量(只能选择系统指定好的变量,它们与数 据库中的字段相关联) 4.DAO类应用与ODBC类应用非常相似,数据交换的原理也非常类似 5.完成添加、删除、更新等功能 要点: 判断当前操作类型 检测数据的合法性,如学号是否重复、是否为空等 检测数据库的状态,判断调用 CDao RecordSet成员函数的 时机
MFC的DAO类数据库应用 1. 创建数据库及表,保存在数据库文件中 2. 生成支持DAO的项目,在向导第二步选择支持类型和数据库文件 3. 在视图类对话框面板中添加控件并进行布局,为控件(通常为编 辑控件)关联成员变量(只能选择系统指定好的变量,它们与数 据库中的字段相关联) 4. DAO类应用与ODBC类应用非常相似,数据交换的原理也非常类似 5. 完成添加、删除、更新等功能 要点: • 判断当前操作类型 • 检测数据的合法性,如学号是否重复、是否为空等 • 检测数据库的状态,判断调用CDaoRecordSet成员函数的 时机
网络开发基础 1.VC支持多种方式的网络编程:AP调用、 ActiveX控件、封装的 Win Sock类、 WinInet类等 2. Win Sock类简介: CAsyncSocket, Csocket 流式套接字:客户机向服务器发送数据前,必须建立于服务器 的连接,基本步骤 建立连接 创建与 Csocket类对象关联的 CSocketFile ·创建与 CSocketFile对象关联的 Achieve对象,利用该对象 进行数据发送,如同操作本地文件一样 数据报:不必建立连接 3. WinInet类建立客户与服务器连接 创建会话类对象 创建连接类并建立与服务器的连接或创建文件类对象 创建数据传输或利用文件类对象传送数据
网络开发基础 1. VC支持多种方式的网络编程:API调用、ActiveX控件、封装的 WinSock类、WinInet类等 2. WinSock类简介:CAsyncSocket、Csocket • 流式套接字:客户机向服务器发送数据前,必须建立于服务器 的连接,基本步骤: • 建立连接 • 创建与Csocket类对象关联的CSocketFile • 创建与CSocketFile对象关联的Carchieve对象,利用该对象 进行数据发送,如同操作本地文件一样 • 数据报:不必建立连接 3. WinInet类建立客户与服务器连接 • 创建会话类对象 • 创建连接类并建立与服务器的连接或创建文件类对象 • 创建数据传输或利用文件类对象传送数据
使用网页浏览器控件 1. Internet Explorer HTML控件封装于视类 CHtml view中,在向导第5 步中视图类基类为 CHtml view,即可生成支持网页浏览的程序 2.修改视图类的 OnInitial Update中的 Navigate2参数,可指定不同的初 始页面 3.添加工具栏、菜单,完善常用的浏览功能,需调用 CHtml view的 Go Forward、 GoBack、Stop等成员函数 4.添加地址栏,实现输入网址、在浏览时显示网址等功能 要支持地址栏,在向导第4步选中 c Intenet Explorer reBars 项 在地址栏中输入地址后回车,会发送⑩DOK消息,需要在视图 类中手工映射这一消息,以实现切换页面功能 重载视图类的 On documentComplete,在当前页面下载完成后, 同步地址栏的显示
使用网页浏览器控件 1. Internet Explorer HTML控件封装于视类CHtmlView中,在向导第5 步中视图类基类为CHtmlView,即可生成支持网页浏览的程序 2. 修改视图类的OnInitialUpdate中的Navigate2参数,可指定不同的初 始页面 3. 添加工具栏、菜单,完善常用的浏览功能,需调用CHtmlView的 GoForward、GoBack、Stop等成员函数 4. 添加地址栏,实现输入网址、在浏览时显示网址等功能 • 要支持地址栏,在向导第4步选中“Internet Explorer ReBars”项 • 在地址栏中输入地址后回车,会发送IDOK消息,需要在视图 类中手工映射这一消息,以实现切换页面功能 • 重载视图类的OnDocumentComplete,在当前页面下载完成后, 同步地址栏的显示