VisualBasic数据库应用开发教程(中)ppt.ppt_第1页
VisualBasic数据库应用开发教程(中)ppt.ppt_第2页
VisualBasic数据库应用开发教程(中)ppt.ppt_第3页
VisualBasic数据库应用开发教程(中)ppt.ppt_第4页
VisualBasic数据库应用开发教程(中)ppt.ppt_第5页
已阅读5页,还剩242页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录 第1章数据库系统概述第2章关系数据库第3章Access关系数据库第4章关系数据库语言和SQL第5章数据库设计第6章VB与数据库应用开发第7章使用数据控件访问数据库 目录 续 第8章使用DAO访问数据库第9章使用ADO访问数据库第10章数据报表与数据输出第11章错误异常处理第12章建立帮助文件和打包发行第13章教学信息管理系统第14章网络考试系统 返回书目 第6章VB与数据库应用开发 6 1VisualBasic6 0与数据库6 2VisualBasic6 0应用系统的体系结构6 3VisualBasic6 0支持的数据存取模式 第6章VB与数据库应用开发 6 4VisualBasic6 0可视化数据管理器6 5VisualBasic6 0数据窗体向导6 6小结和习题 6 1VisualBasic6 0与数据库 6 1 1VisualBasic6 0数据库编程的特征6 1 2VisualBasic6 0数据库开发平台的优点6 1 3VisualBasic6 0支持的数据库种类6 1 4VisualBasic6 0数据库的数据类型 6 1VisualBasic6 0与数据库 VisualBasic6 0数据库编程的特征VisualBasic6 0处理的数据库大多为关系型数据库 支持ADO存取模式 即ActiveXDataObject数据对象存取模式 支持对象连接与嵌入数据库和组件对象模型 针对不同的数据库 如SQLServer Oracle等 可以开发完善的客户机 服务器应用程序 管理数据源和创建服务器端控件 6 1VisualBasic6 0与数据库 具有不需要经过复杂编程就可以管理和显示数据库数据的数据控件和数据绑定控件 数据控件用来与具体的数据库相连接 数据绑定控件用来显示和修改数据库中的数据 提供了能够快速生成报表的DataReportDesigner报表设计工具 提供了使用和配置连接的工具与命令及进行ODBC开发的API函数 支持多层的数据库应用程序开发 6 1VisualBasic6 0与数据库 VisualBasic6 0数据库开发平台的优点简单性 VisualBasic6 0为每种数据访问模式提供了相应控件 通过这些控件只要编写少量的代码或甚至不编写任何代码就可以访问和操作数据库 灵活性 VisualBasic6 0不像一般的数据库 如FoxPro Access等 那样局限于特定的应用程序结构 也不需要用某些指令对当前打开的数据库进行操作 因而比较灵活 6 1VisualBasic6 0与数据库 可扩充性 VisualBasic6 0是一种可以扩充的语言 其中包括在数据库应用方面的扩充 在VisualBasic6 0中 可以使用ActiveX控件 这些控件可以由Microsoft公司提供 也可以由第三方开发者根据COM标准开发 有了ActiveX控件 可以很容易地在VisualBasic6 0中增加新功能 扩充VisualBasic6 0数据存取控制的指令系统 6 1VisualBasic6 0与数据库 VisualBasic6 0能够操作的数据库基本上可以分成如下三类 VisualBasic数据库 即本地数据库 与MicrosoftAccess的格式相同 外部数据库 支持几种流行格式ISAM IndexSequenceAccessMethod 索引顺序访问方法 数据库 该类数据库主要包括 Btrieve dBaseIII dBase dBaseV MicrosoftFoxPro2 0 MicrosoftFoxPro2 5 Paradox3 x及Paradox4 0等 另外还可以访问文本文件 MicmsolExcel Lotus1 2 3电子表格 ODBC数据库 VisualBasic6 06 0支持符合ODBC标准的客户机 服务器数据库 如 MicrosoftSQLServer Oracle等 6 1VisualBasic6 0与数据库 VisualBasic6 0数据库的数据类型数据类型可以用来定义数据库中表的字段类型 数据库系统支持的数据类型取决于使用的数据库引擎和文件格式 VisualBasic6 0使用的数据库引擎是MicrosoftJET JointEngineeringTechnologe 该数据库引擎支持的字段数据类型如表 6 1VisualBasic6 0与数据库 6 2VisualBasic6 0应用系统的体系结构 6 2 1VisualBasic6 0数据库应用系统的组成6 2 2VisualBasic6 0数据库应用系统的存放 6 2VisualBasic6 0应用系统的体系结构 VisualBasic6 0数据库应用系统的组成用户界面和应用程序Jet数据库引擎数据库 6 2VisualBasic6 0应用系统的体系结构 图6 1VisualBasic6 0操作数据库示意图 6 2VisualBasic6 0应用系统的体系结构 1 用户界面和应用程序用户界面是用户所看得见的用于交互的界面 它包括显示数据并允许用户查看或更新数据的窗体 2 Jet数据库引擎VisualBasic6 0使用的数据库引擎是Jet数据库引擎 它是应用程序和数据库存储之间的一种接口 它将与数据库相关的内存管理 游标管理和错误处理等具体而复杂的细节问题抽象为一个既高度一致又简化的编程接口 对所支持的不同类型的数据库提供统一的外部接口 将对记录集的操作转化成对数据库的物理操作 6 2VisualBasic6 0应用系统的体系结构 3 数据库在数据库应用系统中 数据库是包含数据表的一个或多个文件 对于本地VisualBasic数据库或Access数据库来说 就是 mdb文件 对于ISMA数据库 它可能是包含 dbf dBASE文件后缀 文件或其他扩展名的文件 6 2VisualBasic6 0应用系统的体系结构 VisualBasic6 0数据库应用系统的存放VisualBasic6 0数据库应用系统的三个部分可以被分别放置在不同的位置上 放在一台计算机上 共单用户使用 放置在通过网络连接起来的不同计算机上 例如 数据库驻留在中央服务器上 而用户界面 即应用程序 则驻留在几个客户机上 让许多用户访问 6 2VisualBasic6 0应用系统的体系结构 脱离开应用程序本身 将数据存放在另一台机器上的数据库应用系统有两种结构 即远程数据库系统和客户机 服务器数据库两种 在远程数据库系统中 数据库引擎与应用程序在相同的计算机上 只有数据库驻留在远程计算机上 如图6 2 a 所示 在客户机 服务器系统中 数据库引擎和数据库一起被放置在服务器上 如图6 2 b 所示 这样数据库引擎可以同时对多个客户机的应用程序提供服务 操作数据库并对每个本地应用程序返回所请求的记录 6 2VisualBasic6 0应用系统的体系结构 a b 图6 2远程数据库系统 客户机 服务器系统的存放 6 3VisualBasic6 0支持的数据存取模式 6 3 1数据存储对象 DAO 6 3 2远程数据对象 RDO 6 3 3ActiveX数据对象 ADO 6 3VisualBasic6 0支持的数据存取模式 数据存储对象 DAO DAO的体系结构包括三级 用户界面DAO数据库引擎物理数据库 用户界面是用VisualBasic6 0的开发的窗体 使用户能够与数据库进行交换 DAO数据库引擎提供了与数据库交互的机制 物理数据库用来存放实际的数据 这些数据可以被数据库引擎操作 DAO的体系结构如图6 3所示 6 3VisualBasic6 0支持的数据存取模式 图6 3DAO的体系结构 6 3VisualBasic6 0支持的数据存取模式 物理数据库可分为本地数据库和远程数据库两种 本地数据库的所有DAO体系的组件都位于同一台计算机上 而远程物理物理数据库有两种不同的配置 即客户 服务器数据库和远程数据库 在客户 服务器配置中 数据库引擎和物理数据库位于同一台服务器上 用户接口位于客户机上 该方式的服务器可以同时管理多个应用程序的请求 远程数据库方式的物理数据库位于远程服务器上 而用户接口和数据库引擎位于客户机上 服务器只是管理数据库仓库文件的访问 6 3VisualBasic6 0支持的数据存取模式 远程数据对象 RDO 1 RDORDO的主要功能为 可以用来创建简单的无游标结果集 或更复杂的游标 可以执行查询 并处理任意数量的结果集 执行返回结果集的存储过程 无论存储过程是否带有输出参数和返回值 执行包括数据操作或数据定义运算在内的动作查询 可以限制返回或处理的数据行数 在不妨碍执行查询的情况下 监视远程数据资源产生的所有信息和错误 支持同步 异步或事件驱动的异步处理 因此即使在执行冗长的查询或者重定位当前行指针时 应用程序也不会被阻塞 6 3VisualBasic6 0支持的数据存取模式 RDO和DAO共同点 它们都具有连接到数据库 提交查询 创建结果记录集 创建游标及操作结果记录集等功能 还提供了对服务器端数据库的视图 存储过程和事务管理的存取方法 RDO和DAO也有其不同点 表现为以下几点 对于网络应用程序 由于数据访问端与数据库之间有较远的距离 此时需要使用RDO来实现对远程数据库的访问 而使用DAO则不能满足远程数据的访问 对于数据存取方式 RDO是直接与ODBC进行交互访问数据库 而DAO则必须通过Jet数据库引擎来对数据库进行访问 6 3VisualBasic6 0支持的数据存取模式 RDO数据库模式不支持任何直接修改数据库结构的方法 它通过SQL语句来管理数据库结构 而DAO模式可以直接创建数据表和索引等 RDO数据库模式是专门为存取数据库服务器 如 SQLServer Oracle等 数据源而设计 所以不能用RDO数据库模式存取如dBase FoxPro或Paradox的数据源 事实上 RDO不是为ISAM数据库存取而设计的 因此导致了不能用RDO实现多种数据库的连接 而使用DAO就可以将一个表附加到ISAM数据源上 这两个数据源就可以像一个数据库那样工作 6 3VisualBasic6 0支持的数据存取模式 2 ODBCODBC OpenDatabaseConnectivity 开放的数据库互联 是一种访问数据库的统一界面标准 是由Microsoft公司首先确立和倡议的 已被数据库界广泛接受和采用 目前已成为事实上的工业标准 ODBC实际上是一组访问数据库的API ApplicationProgrammingInterface 应用编程接口 函数库 应用程序可以通过ODBCAPI函数操作数据库中的数据 另外 ODBC是基于SQL语言的 所以又是SQI和应用程序之间的标准接口 6 3VisualBasic6 0支持的数据存取模式 ActiveX数据对象 ADO ADO数据访问对象是基于OLEDB之上的面向对象的数据访问模型 OLEDB ObjectLinkandEmbeddingDataBase 是微软开发的一种高性能的 基于COM的数据访问技术 其作用是向应用程序提供一个统一的数据访问方法 而不需要考虑数据源的具体格式和存储方式 ADO操作数据库的方式如图6 4所示 应用程序通过ADO组件的通用接口与OLEDB的数据库驱动程序连接 OLEDB根据实际的物理数据库选择相应的驱动程序 最后操作实际的数据库 6 3VisualBasic6 0支持的数据存取模式 图6 4ADO操作数据库的体系结构 6 4VisualBasic6 0可视化数据管理器 在VisualBasic6 0中访问的数据库创建方法可视化数据管理器 使用VisualBasic6 0的可视化数据管理器 不需要编程就可以创建Jet数据厍 DAO 使用VisualBasic6 0的DAO部件通过编程的方法创建数据库 MicrosoftAccess MicrosoftAccess使用的是与VisualBasic6 0相同的数据库引擎和格式 所以用MicrosoftAccess创建的数据库和直接在VisualBasic6 0中创建的数据库是一样的 外部数据库应用程序 如FoxPro dBASE或ODBC客户机 服务器应用程序这样的产品 可以作为外部数据库 VisualBasic6 0通过ISAM或ODBC驱动程序来访问这些数据库 6 4VisualBasic6 0可视化数据管理器 6 4 1可视化数据管理器用户界面6 4 2用可视化数据管理器创建数据库6 4 3用可视化数据管理器创建数据表6 4 4用可视化数据管理器录入记录 6 4VisualBasic6 0可视化数据管理器 可视化数据管理器用户界面在VisualBasic6 0开发环境内打开可视化数据管理器的步骤如下 选择菜单命令 外接程序 单击 可视化数据管理器 选项 屏幕显示如图6 5所示的VisualBasic6 0可视化数据管理器用户界面 6 4VisualBasic6 0可视化数据管理器 图6 5可视化数据管理器用户界面 可视化数据管理器菜单包括四个 其中 文件 菜单和 实用程序 菜单中各选项的功能分别如表6 2与6 3所示 6 4VisualBasic6 0可视化数据管理器 表6 2文件菜单各选项功能的描述 表6 3实用程序菜单各选项功能的描述 6 4VisualBasic6 0可视化数据管理器 用可视化数据管理器创建数据库在VisualBasic6 0窗口中选择 外接程序 菜单中的 可视化数据管理器 打开Visdata窗口 就可以创建一个新的数据库 例6 1 要求创建一个名为 TuiMag mdb 的数据库 创建步骤 6 4VisualBasic6 0可视化数据管理器 在如图6 5所示的可视化数据管理器窗口中选择 文件 新建 MicrosoftAccess M Version6 0MDB 命令 屏幕显示如图6 6所示对话框 图6 6创建数据库对话框 6 4VisualBasic6 0可视化数据管理器 图6 6TuiMag mdb数据库窗口 在创建数据库对话框中选择盘符 路径 输入文件名TuiMag mdb 单击 保存 按钮 屏幕显示如图6 7所示窗口 TuiMag mdb数据库创建完毕 6 4VisualBasic6 0可视化数据管理器 用可视化数据管理器创建数据表在可视化数据管理器中创建数据表 首先要打开数据库 然后在可视化数据管理器的数据库窗口中创建表 例6 2 要求在 TuiMag mdb 数据库中创建一个名为 StuInfo 的数据表 其表结构如表3 9所示 创建步骤 6 4VisualBasic6 0可视化数据管理器 在 数据库窗口 中的任意位置右单击鼠标 在随后出现的快捷菜单中选择 新建表 命令 屏幕显示如图6 8所示表结构对话框 在表名称中输入 StuInfo 然后单击 添加字段 按钮 打开 添加字段 对话框如图6 9所示 图6 8表结构对话框 6 4VisualBasic6 0可视化数据管理器 在 添加字段 对话框中 按要求输入需添加的字段的名称 类型 大小等 每输完一个字段的结构单击一次 确定 按钮 图6 9添加字段对话框 6 4VisualBasic6 0可视化数据管理器 重复操作步骤三 当所有字段添加完毕 单击 关闭 按钮 返回 表结构 对话框 如图6 10所示 图6 10添加字段对话框 6 4VisualBasic6 0可视化数据管理器 在 表结构 对话框中 单击 生成表 按钮 StuInfo 数据表生成 返回数据库窗口 如图6 11所示 图6 11添加了StuInfo表的数据库窗口 6 4VisualBasic6 0可视化数据管理器 用可视化数据管理器录入记录在可视化数据管理器中输入记录 只需选中数据库窗口中的数据表然后右单击鼠标 在随后出现的快捷菜单中选择 打开 命令 屏幕显示数据表对话框 选择添加即可 例6 3 要求在 StuInfo 数据表中输入记录 表记录如表6 4所示 6 4VisualBasic6 0可视化数据管理器 表6 4StuInfo数据表的记录 6 4VisualBasic6 0可视化数据管理器 输入步骤 在 数据库窗口 中的StuInfo表处右单击鼠标 在随后出现的快捷菜单中选择 打开 命令 屏幕显示 Dynaset StuInfo 对话框 如图6 12所示 图6 12 Dynaset StuInfo 对话框 1 6 4VisualBasic6 0可视化数据管理器 单击 Dynaset StuInfo 对话框中的 添加 按钮 屏幕显示 Dynaset StuInfo 对话框如图6 13所示 输入表6 4中的第一条数据记录 单击 更新 按钮 返回图6 12 Dynaset StuInfo 对话框 重复步骤 和 输入所有记录 然后单击图6 12 Dynaset StuInfo 对话框中 关闭 按钮 回到数据库窗口 图6 13 Dynaset StuInfo 对话框 2 6 5VisualBasic6 0数据窗体向导 VisualBasic6 0有一个 数据窗体向导 可以用来自动创建数据库应用界面 也就是说 利用该向导 程序员只需选择数据库和它的数据表就会自动地创建数据窗体 即自动地创建数据库应用界面 例6 4 要求用 数据窗体向导 快速创建一个可以用来查看和编辑 TuiMag mdb 数据库中 StuInfo 数据表记录的VB应用程序 StuInfo 数据表的记录如表6 4所示 创建步骤 6 5VisualBasic6 0数据窗体向导 选择 外接程序 菜单 单击 外接程序管理器 选项 出现如图6 14所示对话框 单击 外接程序管理器 对话框的 VB6数据窗体向导 选中 加载行为 框架中的 加载 卸载 选项 单击 确定 按钮后 外接程序 菜单将添加 数据窗体向导 选项 图6 14 外接程序管理器 对话框 6 5VisualBasic6 0数据窗体向导 选择 外接程序 菜单 单击 数据窗体向导 选项 出现如图6 15所示 数据窗体向导 介绍 对话框 单击 下一步 按钮 出现 数据窗体向导 数据类型 对话框 选中 Access 数据类型后单击 下一步 按钮 出现如图6 16所示 数据窗体向导 数据库 对话框 图6 15 数据窗体向导 介绍 对话框 6 5VisualBasic6 0数据窗体向导 单击 浏览 按钮 找到所需要的 TuiMag mdb 数据库 单击 下一步 按钮后出现如图6 17所示 数据窗体向导 Form 对话框 图6 16 数据窗体向导 数据库 对话框 6 5VisualBasic6 0数据窗体向导 在 数据窗体向导 Form 对话框的窗体名称文本框中输入 StuInfo数据表窗体 选择窗体布局为 单个记录 绑定类型为 ADO数据控件 单击 下一步 按钮 出现 数据窗体向导 记录源 对话框 在 记录源 下拉列表中选择 StuInfo 数据表 在 可用字段 中双击要用的字段添加到 选定字段 列表中 如图6 17所示 图6 17 数据窗体向导 Form 对话框 6 5VisualBasic6 0数据窗体向导 字段选择完毕 单击 下一步 按钮 出现如图6 18所示的 数据窗体向导 控件选择 对话框 图6 18 数据窗体向导 记录源 对话框 6 5VisualBasic6 0数据窗体向导 在 可用控件 中选中需要的控件 单击 下一步 按钮 出现 数据窗体向导 已完成 对话框 单击 完成 按钮 将自动完成 StuInfo数据表窗体 的创建 如图6 19所示 图6 19 数据窗体向导 控件选择 对话框 6 5VisualBasic6 0数据窗体向导 运行工程1后可以查看和编辑 TuiMag mdb 数据库中 StuInfo 数据表记录 如图6 20所示 图6 20 StuInfo 窗体的运行界面 6 6小结和习题 小结作为应用程序的开发工具 VisualBasic6 0具有强大的数据库处理能力 它将Windows的各种先进特性与强大的数据库管理功能有机地结合在一起 使得在开发数据库应用程序方面具有独到的特征和优点 VB数据库应用系统的体系结构由三个部分组成 用户界面与应用程序 Jet数据库引擎 物理数据库 VB支持的数据存取模式有三种 分别为数据存储对象DAO 远程数据对象RDO和ActiveX数据对象ADO 6 6小结和习题 VB的可视化数据管理器是随着VisualBasic6 0的安装被放置到VisualBasic6 0目录中的 该程序既可以单独运行 也可以在VisualBasic6 0开发环境中启动 凡是VisualBasic6 0有关数据库的操作 如数据库结构的建立 记录的添加及修改等都可以在此工具中来完成 VB的数据窗体向导可以用来自动创建数据库应用界面 也就是说 利用该向导 程序员只需选择数据库和它的数据表就会自动地创建数据窗体 即自动地创建数据库应用界面并连接上所需的数据库 提供了一个快捷的创建VB数据库应用程序的工具 习题 P习题 Data数据控件在数据控件中使用SQL查询数据绑定控件小结和习题 第7章使用控件访问数据库 返回书目 7 1Data数据控件 Data数据控件的常用属性Data数据控件常用的事件Data数据控件常用的方法数据控件的记录集 RecordSet对象 7 1Data数据控件 Data数据控件的常用属性Connect属性DatabaseName属性RecordSource属性RecordsetType属性ReadOnly属性Exclusive属性EofAction和BofAction属性 EofAction和BofAction属性该属性是当记录指针指向RecordSet对象的第一条记录前或最后一条记录后时 数据控件的EofAction和BofAction属性的设置或返回值决定了数据控件要采取的操作 其属性的取值如表8 1所示 7 1Data数据控件 7 1Data数据控件 需要指出是 数据控件本身并不直接显示记录集中的数据 而是通过与它绑定的控件 也称绑定控件 来实现 常用的绑定控件有文本框 标签 复选框 图片框和图象框等 数据控件用于绑定数据库和数据库中的某个数据表 绑定控件先与数据控件进行绑定 再绑定数据表中的某个列 所以要使绑定控件能与数据库进行连接 必须设置它的两个属性 DataSource属性 该属性通过指定一个有效的数据控件使绑定控件连接到一个数据库上 DataField属性 该属性设置数据库有效的字段与绑定控件建立联系 程序设计界面 7 1Data数据控件 创建步骤 选择 文件 菜单中的 新建工程 在随后出现的 新建工程 对话框中选择 标准EXE 单击 确定 按钮 设置窗体的Caption属性为 StuInfo数据表基本信息浏览 在窗体中添加7个标签框 7个文本框和一个命令按钮 并按图8 1所示设置标签框和命令按钮的Caption属性 在窗体上添加一个Data控件 并按表8 2设置属性 7 1Data数据控件 Data控件的属性 绑定控件文本框的属性 7 1Data数据控件 设置绑定控件文本框的属性 如表7 3所示 修改命令按钮的Name属性值为 退出 程序代码如下 PrivateSub退出 Click UnloadMeEndEndSub 运行该应用程序 出现如图8 2所示界面 单击Data控件上的左右箭头可以浏览 StuInfo 数据表中的记录 7 1Data数据控件 程序运行界面 7 1Data数据控件 Data数据控件常用的事件Reposition事件Vaildate事件Errors事件 7 1Data数据控件 Data数据控件常用的事件 例7 2 修改例7 1的应用程序 编一Reposition事件过程 使得当单击数据控件对象上的箭头时 在数据控件的标题区显示记录的序号 创建步骤 添加Reposition事件过程运行该应用程序 出现如图8 3所示界面 单击Data控件上的箭头可以浏览 StuInfo 数据表及其记录序号 7 1Data数据控件 Data数据控件常用的事件 例7 3 在例7 2的应用程序中 添加Vaildate事件 使得用户在浏览 StuInfo 数据表时不能改变学号的位数 创建步骤 Vaildate事件的程序代码如下 PrivateSubData1 Validate ActionAsInteger SaveAsInteger IfSaveAndLen Trim TxtID 6ThenMsgBox 学号必须为6位 vbCritical 警告框 Action 0EndIfEndSub运行该应用程序时 如果用户改变了 StuInfo 数据表的学号位数 然后按了数据控件上的任一个按钮 会出现如右图所示的对话框 7 1Data数据控件 Data数据控件常用的方法Refresh方法UpdateControls方法UpdateRecord方法 7 1Data数据控件 数据控件的记录集 RecordSet对象 RecordSet对象的常用属性RecordSet对象的常用方法 7 1Data数据控件 RecordSet对象的常用属性Enabled属性EOF EndOfFile 属性BOF BeginningOfFile 属性RecordCount属性 7 1Data数据控件 RecordCount属性该属性用于统计RecordSet对象的记录个数 例7 5 修改例7 3的应用程序 当打开该应用程序时显示 StuInfo 数据表记录的个数 创建步骤 在窗体上添加两个标签 如右图所示 添加Activate事件过程 代码如下 PrivateSubForm Activate Data1 Recordset MoveLastLabel9 Caption Data1 Recordset RecordCountEndSub运行该应用程序 StuInfo 数据表记录个数显示在标签框中 7 1Data数据控件 RecordSet对象的常用方法Move方法AddNew方法Delete方法Edit方法Update方法 7 1Data数据控件 Move方法本方法用于移动RecordSet对象的记录指针 有5种移动记录指针的方法 MoveFirst方法MoveLast方法MovePrevious方法MoveNext方法Move n 方法 7 1Data数据控件 Move n 方法Move方法的语法格式如下 RecordSet Move方法名 例7 6 修改例7 3的应用程序 界面如图7 6所示 要求通过Move方法来移动该应用程序的记录 创建步骤 分为三部 7 1Data数据控件 AddNew方法本方法用于清除数据缓冲区中的信息 并将当前记录指针移到最后 为添加新记录作好准备 语法格式如下 RecordSet AddNew调用AddNew方法 清空数据缓冲区 为增加数据作准备 给各个字段赋值 有两种方法可以使用 一种方法 直接在绑定控件中输入各字段的值 另一种方法 可使用语句 RecordSet Fields 字段名 值 调用Update方法 将数据缓冲区中的数据写入数据表 7 1Data数据控件 Delete方法删除记录中的当前记录 但记录指针不动 它仍是当前记录语句格式如下 RecordSet Delete定位被删除的记录使之成为当前记录 调用Delete方法 删除当前记录 移动记录指针 7 1Data数据控件 Edit方法用于将当前记录复制到数据缓冲区以便编辑 语法格式如下 RecordSet Edit注意 编辑一条记录需分四步完成 定位需编辑的记录使之成为当前记录 调用Edit方法 修改各需要修改的字段 调用Update方法 确定所做的修改 7 1Data数据控件 Update方法将数据缓冲区的内容送到数据库中 语法格式如下 RecordSet Update 例7 7 修改例7 6的应用程序 在窗口中增加五个命令按钮 界面如图7 7所示 命令按钮的事件过程要求如下 程序开始运行时 确认 和 取消 按钮是不可用的 单击 添加记录 或 修改记录 按钮后 只有 确认 和 取消 按钮可用 单击 确认 或 取消 按钮后 按钮的状态又回到程序开始运行时的状态 7 2在数据控件中使用SQL查询 SQL语言以其丰富的功能 方便灵活的使用方法 简洁的语言等特点 赢得了广大计算机用户的欢迎 SQL语言的查询语句是SQL的精华所在 查询的动词只有一个SELECT 查询的语法也很简单 但是 通过改变查询条件和查询方式 SQL查询语句可以完成多种查询任务 7 2在数据控件中使用SQL查询 在数据控件中可以通过将SELECT语句字符串赋给RecordSource属性来实现查询 查询过程可以通过以下步骤来完成 根据查询的条件 给出实现查询的SELECT语句字符串 一般赋值给某个变量 将SELECT语句字符串赋值给数据控件的RecordSource属性 执行数据控件的Refresh方法 注意 当查询条件中包含变量时 该变量要用两个单引号括起来 7 2在数据控件中使用SQL查询 例7 8 修改例7 7的应用程序 在窗体中增加二个命令按钮 界面如图7 10所示 命令按钮的事件过程要求如下 程序开始运行时 查询结束 确认 和 取消 按钮无效 单击 查询 按钮后 只有 查询结束 可用 单击 查询结束 按钮后 按钮的状态又回到程序开始运行时的状态 7 3数据绑定控件 在VisualBasic6 0中数据控件本身不能直接显示记录集中的数据 必须通过可以与数据控件进行绑定的控件来实现 那些可以与数据控件进行绑定 并显示记录集中数据的控件称为数据绑定控件 常用的标准数据绑定控件有文本框 标签框 复选框 图片框和图象框等 另外VisualBasic6 0还提供了一些可添加到工程中的ActiveX数据绑定控件 7 3数据绑定控件 Datasource属性Row属性Rows属性Col属性Cols属性FixedCols属性FixedRows属性RowHeight属性ColWidth属性GridLine属性Scrollbars属性Text属性Picture属性 大多数数据绑定控件都是读者比较熟悉的常用控件 只需对DataSource和DataField这两个属性进行设置即可使用 ActiveX数据绑定控件Dblist和DBCombo同标准控件的列表框和组合框类似 可以给用户提供选项列表 只是其选项从记录集中获得 ActiveX数据绑定控件MSFlexGrid使用非常广泛 MSFlexGrid控件除具有Name Caption Visible等大多数控件都拥有的属性外 还具有以下几个与显示数据有关的属性 7 3数据绑定控件 例7 10 修改 例7 2 应用程序 在窗体中增加一个Data控件和MSFlexGrid控件 界面如图7 16所示 要求当StuInfo数据表记录发生变化时 在MSFlexGrid控件中显示该学生的课程成绩 图7 16 例7 10 初始界面修改步骤 三个步骤 小结 小结Data数据控件是VisualBasic6 0提供的一种访问数据库的对象 它是通过Jet数据库引擎接口实现数据访问的 Data数据控件可以将VisualBasic6 0的窗体与数据库方便地进行连接 并提供有效的 不需编程即能访问数据库的功能 其工作原理是 通过设置数据控件的属性 将数据控件与一个特定的数据库及其中的数据表连接起来 然后通过数据绑定控件在窗体上显示数据库中的相应数据 本章主要介绍Data数据控件的使用方法 数据控件的记录集 RecordSet对象 SQL查询在数据控件中的使用及数据绑定控件 习题 P习题 第8章使用DAO访问数据库 8 1DAO层次结构8 2DAO对象8 3DAO编程实例8 4小结和习题 8 1DAO层次结构 DAO提供两种不同的编程模型结构 MicrosoftJetWorkspacesDAO模型ODBCDirectWorkspacesDAO模型 数据访问对象模型是Jet为数据库引擎的面向对象的接口 由一系列数据库对象和对象的集合按一定的层次结构组成 其层次结构和关系数据库的逻辑视图相符合 数据访问对象类以分层结构来组织 其中的大多数类属于集合类 在分层结构中 它又属于其上层的另一个类 DAO的层次结构如图8 1所示 8 1DAO层次结构 图8 1DAO层次结构模型图 8 2DAO对象 8 2 1DBEngine对象8 2 2Workspace对象8 2 3Database对象8 2 4TableDef对象8 2 5Recordset对象8 2 6QueryDef对象8 2 7Field对象 8 2DAO对象 DBEngine对象DBEngine对象相当于Jet数据库引擎 它是不需要创建就已经存在的对象 而且一个应用界面只能有一个DBEngine对象 DBEngine对象位于DAO对象的顶层 其层次结构如图8 2所示 图8 2DBEngine对象 8 2DAO对象 DBEngine对象的属性DefaultUser 缺省用户名称 进行数据库访问时设置的缺省用户名称 是一个长度小于20个字符的String变量 DefaultUser的缺省值是Admin DefaultPassword 缺省用户口令 进行数据库访问时设置的缺省用户口令 DefaultPassword的缺省值是空字符串 SystemDB 系统数据库名称 本地MicrosoftJet数据库工作组文件 缺省值为System mdw 8 2DAO对象 IniPath 初始文件位置 设置或返回Windows注册文件中存有MicrosoftJet数据库引擎值的键的有关信息 LoginTimeout 注册超时 在注册进入一个ODBC数据库时 系统发出错误信号前等待的时间 缺省值为20秒 如果设为零 系统将永久等待Version DAO版本信息 用来返回正在使用的DAO的版本信息DefaultType Workspace对象的类型 设置或返回一个值 该值为创建下一个工作区对象指出默认连接类型 工作区类型 该属性的取值有两个 DbUseJet表示创建连接到MicrosoftJet数据库引擎的工作区对象 DbUseODBC表示创建连接到数据源的工作区对象 8 2DAO对象 DBEngine对象的方法CreateWorkspace 创建一个新的Workspace对象 可以选用参数来设置Workspace的类型以及访问的用户名称和访问的口令 CompactDatabase 压缩或转换一个关闭的MicrosoftJet数据库 RegisterDatabase 将ODBC数据源的连接信息注册到Windows 8 2DAO对象 RepairDatabase 修复一个关闭的MicrosoftJet数据库 Idle 挂起数据处理进程 使DBEngine处于空闲状态 8 2DAO对象 CreateWorkspace方法用于创建一个具有指定类型 用户名称和口令的Workspace对象 其语法如下 SetWorkspace对象变量 DBEngine CreateWorkspace name user password type CreateWorkspace的参数有name user password type 说明如下 name String类型 用于指明Workspace的名称 user String类型 用于指明访问的用户名称 password String类型 用于指定访问的口令 type 常量 指明所建立的Workspace的类型 取值有两个 分别是dbUseJet 创建MicrosoftJet工作区 和dbUseODBC 创建ODBC工作区 8 2DAO对象 Workspace对象Workspace对象的属性Name 设置或返回用户定义的Workspace对象的名称 Type Workspace对象的类型 如果连接MicrosoftJet数据库 则为MicrosoftJetWorkspace对象 如果连接ODBC数据库 则为ODBCWorkspace对象 3 UserName 拥有该Workspace对象的用户或用户组的名称 4 LoginTimeout 在注册进入一个ODBC数据库时 系统发出错误信号前等待的时间 缺省值为20秒 如果设为零 系统将永久等待 8 2DAO对象 图8 4Workspace集合和对象 8 2DAO对象 Workspace对象的方法CreateDatabase 在一个指定的工作区中建立一个新的Jet数据库对象 只能是 mdb 且存放在磁盘上 并把数据库对象作为函数值返回 该方法只能创建Jet数据库 只能是 mdb 且存放在磁盘上 也是代码创建Jet数据库的惟一方法 8 2DAO对象 CreateGroup 在一个指定的工作区建立一个新的组Group对象 CreateUser 在一个指定的工作区建立一个新的组User对象 OpenConnection 在ODBC数据源上打开一个Connection对象 仅用于ODBCDirectWorkspace 它通过MicrosoftJet数据引擎直接访问ODBC数据源的Workspace OpenDatabase 打开一个现在的数据库 可以打开Jet3 51支持的所有类型的数据库 8 2DAO对象 BeginTrans 将该语句后到CommitTrans语句前的一系列的数据操作作为一个事务来完成 以便于在需要的时候使用Rollback方法回退这一系列数据操作 CommitTrans 结束当前的事务并且将所进行的修改保存到数据库中 Rollback 回退从BeginTrans开始到CommitTrans提交的事务 Close 关闭该Workspace对象以及它的任何子对象 即将Workspace对象从内存中删除 8 2DAO对象 Database对象Databases集合指一系列的Database对象 每个Database对象映射一个打开的物理数据库 Database集合和对象的层次结构图如图8 5所示 其中 TableDef对象为Database对象子集的默认对象 图8 5Database集合和对象 8 2DAO对象 Database对象的属性Name 设置或返回数据库的完整路径和文件名 Connect 设置或返回打开外部数据库时的连接字符串 Connectstring Connection 设置或返回ODBC连接属性 包括用户名 口令等 Transactions 返回是否可以使用BeginTrans CommitTrans或RollBack 实现批量写入 取消写入 8 2DAO对象 QueryTimeout 设置当使用ODBC调用打开客户服务器结构的数据库时 操作等待的时间 CollatingOrder 返回数据库中文排序方式 Count 返回Database对象的数量 RecordsAffected 返回执行Execute命令后 被操作的记录数 Version 返回所打开数据库的版本号 8 2DAO对象 Updatable 返回是否可对数据库进行写入或删除数据操作 Replicable 设置或返回数据库或数据库对象可以被复制 V1xNullBehavior 设置是否将 Text 类型或 Memo 类型的字段的空字符串转换为Null 其值为True时 进行转换 8 2DAO对象 Database对象的方法 1 OpenRecordset 打开Recordset记录集对象 它是Database对象诸方法中使用最多的一个方法 语法 Setrecordset object OpenRecordset source type options lockedits 参数source 字符串型 指定新建的Recordset对象的记录源 可以是表名 查询名或一个返回若干记录的SQL语句 对于MicrosoftJet数据库中的表类型的Recordset对象 它只能是表名 8 2DAO对象 参数type 可选 指定Recordset对象的类型 它可取表8 1中的值 参数options 可选 指定Recordset对象的其它属性 它可取表8 2中的值 参数lockedits 可选 指定Recordset对象的锁定类型 它可取表8 3中的值 8 2DAO对象 表8 1Type参数的取值 8 2DAO对象 表8 2Option参数的取值 8 2DAO对象 表8 3lockedits参数的取值 8 2DAO对象 Close 关闭DAO对象 CreateProperty 创建一个新的用户定义的Property对象 只对MicrosoftJetWordspace有效 CreateQueryDef 创建一个新的查询定义QueryDef对象 CreateTableDef 创建一个新的表定义TableDef对象 CreateRelation 创建一个新的联系Relation对象 只对MicrosoftJetWordspace有效 8 2DAO对象 Execute 在一个指定的连接或数据库对象上运行一个功能查询或执行一个SQL语句 NewPassword 改变口令 MakeReplia 复制数据库 只对MicrosoftJetWordspace有效 Synchronize 使两个复制同步 只对MicrosoftJetWordspace有效 8 2DAO对象 TableDef对象TableDef集合和对象的层次结构图如图9 6所示 它包括字段 Field 和索引 Index 两个对象 图8 6TableDef集合和对象 8 2DAO对象 TableDef对象的属性Name 设置或返回TableDef对象的名称 可以和数据库中表的名称不一样 Attributes 设置或返回TableDef对象的特性 如是否打开为打开为独占方式 该表是否是由Jet数据库引擎提供的系统表等等 ConflictTable 冲突表的名字 该表包含了两个副本在同步期间相互冲突的数据库记录 8 2DAO对象 DataCreated 返回创建表的日期和时间 是日期变量型 LastUpdated 返回最近一次修改表的 日期和时间 是日期变量型 RecordCount TableDef对象中所有的记录总数 对于基表 BaseTable RecordCount属性返回的是表中的记录总数 对于链接表 LinkedTable 返回的是 1 8 2DAO对象 Updatable 指定能否对表中的数据进行修改 取True或False值 对于新建的TableDef对象 该属性值为True 但在有些场合 如网络环境 表可以被锁定 或用户以只读方式打开时 该值为False 表明不能对表更新 ValidationRule 有效性规则 在一个字段被修改或添加到一个表时 设置或返回用来使该字段中数据生效的值 字符串类型 ValidationText 在键入到某个字段对象中的值不满足有效性规则时 应用程序所显示的提示性信息 8 2DAO对象 TableDef对象的方法CreateField 在TableDef对象中建立一个新的字段 并创建一个Field对象 建立对该字段的引用 CreateIndex 在TableDef对象中建立一个新索引 并创建一个Index对象 建立对该索引的引用 CreateProperty 建立一个用户自定义的属性 并创建一个P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论