第12章高级编程
第12章 高级编程
数据库编程 数据库基础知识 开放数据库互联ODBC ODBC体系结构 ■ODBC调用模式 MFC的ODBC类数据库应用 MFC的DAO类数据库应用 2.网络编程 网络开发基础 使用网络浏览器控件
1. 数据库编程 • 数据库基础知识 • 开放数据库互联ODBC ◼ ODBC体系结构 ◼ ODBC调用模式 • MFC的ODBC类数据库应用 • MFC的DAO类数据库应用 2. 网络编程 • 网络开发基础 • 使用网络浏览器控件
数据库基础知识 1.数据库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.在视图类对话框面板中添加控件并进行布局,为控件(通常为编 辑控件)关联成员变量(只能选择系统指定好的变量,它们与数 据库中的字段相关联) DAO类应用与ODBC类应用非常相似,数据交换的原理也非常类似 5.完成添加、删除、更新等功能 要点: 判断当前操作类型 检测数据的合法性,如学号是否重复、是否为空等 检测数据库的状态,判断调用 CDao RecordSet成员函数的 时机
MFC的DAO类数据库应用 1. 创建数据库及表,保存在数据库文件中 2. 生成支持DAO的项目,在向导第二步选择支持类型和数据库文件 3. 在视图类对话框面板中添加控件并进行布局,为控件(通常为编 辑控件)关联成员变量(只能选择系统指定好的变量,它们与数 据库中的字段相关联) 4. DAO类应用与ODBC类应用非常相似,数据交换的原理也非常类似 5. 完成添加、删除、更新等功能 要点: • 判断当前操作类型 • 检测数据的合法性,如学号是否重复、是否为空等 • 检测数据库的状态,判断调用CDaoRecordSet成员函数的 时机
网络开发基础 1.VC支持多种方式的网络编程:API调用、 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类建立客户与服务器连接 • 创建会话类对象 • 创建连接类并建立与服务器的连接或创建文件类对象 • 创建数据传输或利用文件类对象传送数据
使用网页浏览器控件 Internet Explorer HTML控件封装于视类 CHtml view中,在向导第5 步中视图类基类为 CHtml view,即可生成支持网页浏览的程序 2.修改视图类的 OnInitialUpdate中的 Navigate2参数,可指定不同的初 始页面 3.添加工具栏、菜单,完善常用的浏览功能,需调用 CHtml view的 GoForward、 GoBack、Stop等成员函数 4.添加地址栏,实现输入网址、在浏览时显示网址等功能 要支持地址栏,在向导第4步选中“ nternet Explorer ReBars项 在地址栏中输入地址后回车,会发送IDOK消息,需要在视图 类中手工映射这一消息,以实现切换页面功能 重载视图类的 OnDocumentcomplete,在当前页面下载完成后, 同步地址栏的显示
使用网页浏览器控件 1. Internet Explorer HTML控件封装于视类CHtmlView中,在向导第5 步中视图类基类为CHtmlView,即可生成支持网页浏览的程序 2. 修改视图类的OnInitialUpdate中的Navigate2参数,可指定不同的初 始页面 3. 添加工具栏、菜单,完善常用的浏览功能,需调用CHtmlView的 GoForward、GoBack、Stop等成员函数 4. 添加地址栏,实现输入网址、在浏览时显示网址等功能 • 要支持地址栏,在向导第4步选中“Internet Explorer ReBars”项 • 在地址栏中输入地址后回车,会发送IDOK消息,需要在视图 类中手工映射这一消息,以实现切换页面功能 • 重载视图类的OnDocumentComplete,在当前页面下载完成后, 同步地址栏的显示