第12章 ADO数据库编程.ppt_第1页
第12章 ADO数据库编程.ppt_第2页
第12章 ADO数据库编程.ppt_第3页
第12章 ADO数据库编程.ppt_第4页
第12章 ADO数据库编程.ppt_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

第12章ADO数据库编程 本章要点 ADO的概念及其对象组成 ADO各对象的作用 利用ADO连接到各种数据库的方法 ADO各对象的属性 方法的含义及其使用方法 利用ADO编写数据库应用程序的方法 12 1ADO对象模型概述 12 1 1ADO的概念ADO ActiveXDataObject 是微软最新的数据访问组件 微软数据访问组件简称MDAC 的一部分 是Microsoft最新的数据访问接口 通过它可以访问多种类型的数据库 ADO是基于OLEDB 对象链接和嵌入数据库 之上的面向对象的数据访问模型 OLEDB是Microsoft开发的一种高性能的 基于COM的数据访问技术 其作用是向应用程序提供一个统一的数据访问方法 而不需要考虑数据源的具体格式和存储方式 通过ADO的方法和属性可以为应用程序提供统一的数据访问方法和接口 使用ADO必须先加载 有两种类型库 ADODB和ADOR 分别包含在两个动态连接库MSADO15 DLL和MSADOR15 DLL中 引用这两种类型库的方法 工程 引用 选MicrosoftActiveXDataObject2 7Library ADODB 或MicrosoftActiveXDataObjectRecordSet2 7Library ADOR ADODB功能更强大 大多用此 12 1 2ADO模型的对象 ADO由七个基本对象组成 这七个基本对象分别是Connection Recordset Command Field Property Parameter和Error 另外包含Errors Parameters Fields Properties四个集合对象 P292表12 14 1 基本对象 1 Connection对象 2 Recordset对象 3 Command对象 4 Field对象 5 Property对象 6 Parameter属性 7 Error对象2 集合对象 1 Errors集合对象 2 Parameters对象 3 Fields对象 4 Properties对象3 事件 1 ConnectionEvents类事件 2 RecordsetEvents类事件 12 1 3ADO模型的编程模型 ADO提供的对象可以完成以下活动 1 连接到数据源 主要使用Connection对象 可选择开始一个事务 2 执行SQL命令 使用Command对象 3 可选择在SQL命令中指定列 表和值作为变量参数 主要使用Parameter对象 4 执行命令 主要使用Command Connection或Recordset对象 5 如果命令是以按行返回的记录集 则将行存储在缓存中 主要使用Recordset对象 6 可选择创建缓存视图 以便能对数据进行排序 筛选和定位 主要使用Recordset对象 7 对记录集中的数据进行添加 删除或更改操作 主要使用Recordset对象 8 在适当情况下 使用缓存中的更改内容来更新数据源 主要使用Recordset对象 9 在使用事务之后 可以接受或拒绝在事务期间所作的更改 结束事务 主要使用Connection对象及事务处理方法 12 2Connection对象 使用Connection对象的集合 方法和属性可执行下列操作 1 在打开连接前使用ConnectionString ConnectionTimeout和Mode属性对连接进行配置 2 设置CursorLocation属性以便调用支持批更新的 客户端游标提供者 3 使用DefaultDatabase属性设置连接的默认数据库 4 使用IsolationLevel属性为在连接上打开的事务设置隔离级别 5 使用Provider属性指定OLEDB提供者 6 使用Open方法建立到数据源的物理连接 使用Close方法将其切断 7 使用Execute方法执行对连接的命令 并使用CommandTimeout属性对执行进行配置 8 可使用BeginTrans CommitTrans和RollbackTrans方法以及Attributes属性管理打开的连接上的事务 如果提供者支持则包括嵌套的事务 9 使用Errors集合检查数据源返回的错误 10 通过Version属性读取所使用的ADO执行版本 11 使用OpenSchema方法获取数据库纲要信息 12 2 1Connection对象的常用属性 1 Attributes属性2 CommandTimeout属性默认30秒3 ConnectionString属性 其值为String类型 为多个由分号分隔的 argument Value 语句 P292教材P186童4 ConnectionTimeout属性 默认15秒P186童5 CursorLocation属性6 DefaultDatabase属性7 IsolationLevel属性8 Mode属性9 Provider属性 指定OLEDB数据或服务提供者的名称 10 State属性11 Version属性 12 2 2Connection对象的常用方法 1 BeginTrans方法格式如下 level Connection BeginTrans 或Connection BeginTrans2 CommitTrans方法格式如下 Connection CommitTrans3 RollbackTrans方法格式如下 Connection RollbackTrans4 Open方法语法格式如下 Connection对象名 Open ConnectionString UserID Password OpenOptions 5 Close方法 P188童Connection对象名 Close6 Execute方法 P188童格式1 Connection对象名 ExecuteCommandText RecordsAffected Options 格式2 Setrecordset对象名 Connection对象名 Execute CommandText RecordsAffected Options 7 Cancel方法终止Execute或Open方法的调用8 OpenSchema方法 12 2 3连接到数据库的方法 1 通过DSN建立连接 10 1 例12 1 为 教学 库建立两个DSN 分别是jiaoxue和SQLPubs 请编写一个连接到这两个DSN的程序 程序的设计界面如下图所示 然后执行时 单击 建立到SQLPubs的连接 将建立与SQLPubsDSN的连接 单击 建立到jiaoxueDSN的连接 将建立与jiaoxueDSN的连接 题意分析 为建立连接 可先给Connection对象的ConnectionString属性赋值为需要建立连接的参数 然后执行Connection对象不带参数的Open方法 也可在调用Connection的Open方法时指定连接字符串 此题需注意连接到SQLDSN和连接到MicrosoftAccessDSN的区别 ODBC OpenDatabaseConnectivity 简介 是一种访问数据库的统一界面标准 应用程序不需要考虑不同的数据格式 而采用一个统一的方法使用数据库 P93童 控制面板中的ODBC数据源管理器 ADO操作数据库的物理机制P95童 RDBMS Relationaldatabasemanagementsystem关系型数据库管理系统 E MAIL服务器主要提供电子邮件信箱服务 目录服务是用于在全球范围内查找用户和商业伙伴的强大的搜索工具 目录服务对于网络的作用就像白页对电话系统的作用一样 目录服务将有关现实世界中的事物 如人 计算机 打印机等等 的信息存储为具有描述性属性的对象 人们可以使用该服务按名称查找对象或者像使用黄页一样 可使用它们查找服务 ODBC数据源 DSN 的配置 DSN可分成三种 分别如下 系统DSN SYSTEMDSN 这种DSN可以被登录到系统中的所有用户使用 用户DSN USERDSN 这种DSN是为特定用户建立的 只能被建立它的用户使用 文档DSN FILEDSN 用于文档的DSN Access数据库的系统DSN的配置例 为前面建立的 教学 数据库建立一个系统DSN DSN名为 jiaoxue 使用的操作系统为WindowsXP 具体步骤如下 执行 ODBC数据源管理器 执行 开始 控制面板 窗口 在控制面板窗口中双击 性能维护 图标 再双击 管理工具 图标 然后再双击 数据源 ODBC 图标 将会打开 ODBC数据源管理器 窗口 选择数据源类型并添加数据源在 ODBC数据源管理器 窗口中单击 系统DSN 页标头 再单击 添加 按钮 将会出现 创建新数据源 对话框 选择驱动数据源的驱动程序在 创建新数据源 对话框中 选中 MicrosoftAccessDriver mdb 后按 完成 按钮 将会出现 ODBCMicrosoftAccess安装 对话框 设置数据源参数在 数据源名 后的文本框中输入 jiaoxue 数据源名 在 说明 后的 文本框 中输入 教学数据库 说明信息 单击 选择 按钮 将会出现 选择数据库 对话框 在该对话框中选择 教学 数据库后按 确定 按钮 完成再在 ODBCMicrosoftAccess安装 对话框按 确定 按钮 完成数据源的配置 SQLServer数据库的系统DSN的配置 例 为SQLServer2000自带的数据库Pubs建立一个系统DSN DSN名为 SQLPubs 使用的操作系统为WindowsXP 具体步骤如下 同Access数据源名的配置 同Access数据源名的配置 选择驱动数据源的驱动程序 为数据源命名并选择SQL服务器 设置登录ID和密码 选择数据库 测试数据源 完成 2 直接使用数据库文件名称或数据源名称建立连接 1 使用SQLServer普通安全模式建立到Pubs数据库的连接 须提供用户名和密码 2 SQLServer信任安全模式建立到Pubs数据库的连接 可不提供用户名和密码 例12 2 直接建立到SQLServer2000的数据库 Pubs 的连接和到当前目录下的MicrosoftAccess数据库 教学 的连接 程序的设计界面如图所示 运行时单击 建立到SQLPubs数据库的连接 将以两种方法建立到SQLServer数据库Pubs的连接 单击 建立到Access教学数据库的连接 将以两种方式建立到Access数据库 教学 的连接 例10 2 12 2 4通过打开的连接执行SQL语句 例12 3 通过Connection的Execute方法来执行SQL语句 为当前目录下的 教学 数据库中的 学生表 添加一条记录 记录的 学号 和 姓名 值分别为 0001020 和 周小华 10 3 题意分析 先采用直接使用数据库名的方法连接到Access数据库 教学 然后通过调用Connection的Execute方法来执行SQL Insert语句 a 执行前 b 执行后 12 3RecordSet对象 10 3 1Recordset对象简介在数据库中 游标是一个十分重要的概念 游标提供了一种对从表中检索出的数据进行操作的灵活手段 就本质而言 游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制 P193童在ADO中定义了四种不同的游标类型 1 动态游标 2 键集游标 3 静态游标 4 仅向前游标 ADO默认打开 10 3 2Recordset对象的属性1 AbsolutePage PageCount与PageSize属性2 AbsolutePosition和RecordCount属性3 ActiveConnection属性4 CacheSize属性 5 CursorLocation属性6 CursorType属性7 EditMode属性8 Filter属性9 LockType属性10 MaxRecords属性12 Sort属性13 Source属性14 State属性 12 3 3Recordset对象的方法 1 Cancel方法P197童格式 Object Cancel终止异步执行的Execute或Open方法的调用 2 CancelUpdate方法格式 Recordset CancelUpdate3 CancelBatch方法格式 Recordset CancelBatchAffectRecords4 NextRecordSet方法该命令的格式如下 格式 SetRecordset2 Recordset1 NextRecordset RecordsAffected 5 Open方法格式 Recordset OpenSource ActiveConnection CursorType LockType Options执行一条SQL语句查询或者调用数据库的存储过程 返回一个记录集 6 Resync方法格式 Recordset ResyncAffectRecords ResyncValues7 Save方法格式 Recordset SaveFileName PersistFormat8 UpdateBatch方法格式 Recordset UpdateBatchAffectRecords9 GetRows方法格式 Array Recordset GetRows 10 Supports方法格式 boolean Recordset Supports CursorOptions 12 3 4访问Recordset对象字段的方法 12 3 5Recordset对象应用实例 例12 4 使用ADO的Recordset对象把当前目录下的 教学 数据库中的 学生表 中的数据显示出来 程序设计界面如图 a 所示 程序刚运行时 只有 连接 按钮可用 单击该按钮 将建立到当前目录下的 教学 数据库的连接 然后 连接 按钮不可用 显示 按钮可用 单击 显示 按钮 将把 学生表 中的数据显示在MsFlexGrid控件中 同时 显示 按钮不可用 关闭 按钮可用 如图 b 所示 单击 关闭 按钮 将关闭记录集和连接并结束程序 10 4 题意分析 本题要用MsFlexGrid控件显示表的内容 而MsFlexGrid控件并不是VB的标准控件 应该首先把它加载到VB的工程中 加载的方法是执行 工程 部件 命令 在出现的部件对话框中选中 MicrosoftFlexGridControl6 0 后按 确定 按钮 要在MSFlexGrid控件中显示数据表中的内容 可通过循环把表中的各字段的内容依次赋值到MsFlexGrid的TextMatrix属性中 12 4Command对象 12 4 1Command对象简介Command对象定义了将对数据源执行的指定命令 通过Command对象可以执行SQL语句 数据库中的存储过程等 虽然Connection对象的Execute方法也能够执行SQL语句 但Command对象还提供了参数化查询等专门的运行方式 利用Command对象可以查询数据库中的记录以形成记录集 还可以更改数据库的结构 但由于数据提供者提供的功能不同 在引用某些Command集合 方法或属性时可能会产生错误 需要使用者查询相应的参考书籍 12 4 2Command对象的常用属性 1 ActiveConnection属性 指定与Command对象关联的已打开的连接对象 2 CommandText属性 定义一个可执行的命令串 3 CommandTimeout属性 4 CommandType属性 指定命令的类型 7种值 其中前5个同Options参数表的前5个 P203童5 Prepared属性6 State属性12 4 3Command对象的常用方法1 Cancel方法 终止Execute方法的调用 2 Execute方法 执行CommandText中的查询 P203童下端 12 4 4Command对象应用实例 例12 5 已知 教学管理 数据库位于当前目录下 请使用Command对象查询出自动化专业的全部学生的学号 姓名和年级 并调用例12 4中的ShowData方法把查询结果显示出来 程序设计界面如图 a 所示 程序刚运行时 只有 连接 按钮可用 单击该按钮 将建立到当前目录下的 教学管理 数据库的连接 然后 连接 按钮不可用 显示查询结果 按钮可用 单击 显示查询结果 按钮 将把查询结果的数据显示在MsFlexGrid控件中 同时 显示查询结果 按钮不可用 关闭 按钮可用 如图 b 所示 单击 关闭 按钮 将关闭记录集 连接并结束程序 10 5 题意分析 可使用Command对象的Execute方法执行查询得到结果记录集 处理的一般步骤如下 1 设置Command对象的ActiveConnection属性为所需要的连接对象名 2 设置Command对象的CommandText属性为要执行的查询字符串 3 设置Command对象的CommandType属性为要执行的命令类型 4 调用Command对象的Execute方法执行查询 若是返回记录集的查询 可把结果赋值给一个记录集对象变量 例12 6 给当前目录中的 教学 数据库中的 教师表 添加一条记录 记录值为 05003 杨权 女 09 22 69 讲师 计算机学院 3855 50 要求使用Command对象 程序的运行界面如下图所示 程序运行时单击 连接并显示 命令将把 教师表 中的当前数据显示出来 如图 a 所示 单击 插入并显示 将显示插入一条记录后的 教师表 信息 如图 b 所示 例10 6 题意分析 可通过Command对象来执行一条SQL INSERT命令 从而可以插入一条记录到相应的表中 在插入前和插入后把该表的内容分别显示出来以观察程序的运行结果 12 5Field对象和Fields集合 12 5 1Field对象的常用属性1 ActualSize属性 返回Field对象值的实际长度 2 Attributes属性 3 DefinedSize属性 确定Field对象的数据容量 4 Name属性 设置或返回Field对象名称 5 NumericScale属性6 OriginalValue属性7 Precision属性8 Type属性 设置或返回字段的类型 9 UnderlyingValue属性10 Value属性 设置或返回字段的值 12 5 2Field对象的常用方法 1 AppendChunk方法该方法的使用格式如下 Field AppendChunkData2 GetChunk方法该方法的使用格式如下 variable field GetChunk Size 12 5 3Fields对象的常用属性Fields对象是Field对象的集合 Fields的属性Count 该属性用来返回Fields对象中包含的Field对象个数 如果Count属性为零 集合中将不存在对象 Fields集合对象的每个成员都有一个编号 从0开始 以Count属性值减1结尾 12 5 4Fields对象的常用方法 1 Append方法 向fields中添加一个field对象格式 fields AppendName Type DefinedSize Attrib2 Delete方法 要删除的field对象格式 Fields DeleteField3 Item方法 根据顺序号返回Fields集合中特定的Field成员格式 SetField Fields Item Index 例12 7 编写一个程序 用来显示 教学 数据库中的 教师表 中的字段信息 程序设计界面如图 a 所示 程序运行时 在列表框中将显示出 教师表 的所有字段名 当在列表框中选中相应的字段时 该字段的长度 类型和字段值将分别显示在相应的文本框中 如图 b 所示 例10 7 题意分析 在Form Load事件中 建立到 教学 数据库的连接并创建以 教师表 为基础的Recordset对象 然后通过一个循环把Fields集合中每个Field对象的Name属性添加到列表框中 程序运行时 当发生List1的Click事件时 将选中字段的属性DefinedSize Type Value值分别赋给相应的文本框的Text属性 12 6Error对象和Errors集合P209童 12 6 1Error对象的常用属性1 Description属性 错误的简要说明 2 NativeError属性 L型 错误代码 3 Number属性 L型 错误类型4 Source属性 C型 确定错误的原始对象或应用程序名称 5 SQLState属性12 6 7Errors对象的常用属性与方法Count属性 为Errors中包含的Error个数 Clear方法 清除Errors中的Error对象 如 Errors Clear 例12 8 12 7利用ADOData控件进行数据库编程 12 7 1ADOData控件简介1 添加ADOData控件添加方法是 执行 工程 部件 命令 将出现的 部件 对话框 在该对话框中选中 MicrosoftADODataControl6 0 OLEDB 后按 确定 按钮 2 ADOData控件的主要功能 1 连接到一个本地数据库或远程数据库 2 从指定的数据库表或视图中提取记录构成记录集 或通过执行一个基于结构化查询语言 SQL 的查询来构成记录集 或执行存储过程来构成记录集 3 将字段的数值传递给数据绑定控件 可以在这些控件中显示或更改字段值 4 添加新的记录 或根据对显示在数据绑定控件中的数据的更改来更新一个数据库 12 7 2ADOData控件的属性窗口 1 通用 属性页建立连接字符串有三种方式 分别如下 1 使用DataLink文件 2 使用ODBC数据源名称 3 使用连接字符串2 身份验证 属性页3 记录源 属性页 12 7 3ADOData控件的常用属性 1 ConnectionString属性2 UserName属性3 Password属性4 RecordSource属性5 CommandType属性6 CursorLocation属性7 CursorType属性8 LockType属性9 Mode属性10 MaxRecords属性11 ConnectionTimeout属性12 CacheSize属性13 BofAction EofAction属性 12 7 4ADOData控件的常用事件 1 WillMove事件2 MoveComplete事件3 WillChangeField事件4 FieldChangeComplete5 WillChangeRecord事件6 RecordChangeComplete事件7 WillChangeRecordset事件8 RecordsetChangeComplete事件9 InfoMessage事件 12 7 5常用的与ADOData控件绑定使用的数据绑定控件 使用ADOData控件与数据绑定控件开发数据库应用程序的一般步骤如下 1 加载ADOData控件并在界面上绘制该控件 2 设置该控件的ConnectionString属性以连接到数据库 3 设置RecordSource属性以决定检索什么信息 4 设置CommandType属性以告诉提供者命令的类型 5 设置CursorType属性以决定游标的类型 6 根据需要再设置ADOData控件的其它属性 7 在窗体上放置数据绑定控件 8 设置数据绑定控件的DataSource属性为ADOData控件名 9 设置数据绑定控件的DataField属性为记录集中的某个字段名 10 编写事件过程对程序进行控制 12 7 6使用ADOData控件创建数据库应用程序示例 例12 9 把当前目录下的 教学 数据库中的 学生表 信息显

温馨提示

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

评论

0/150

提交评论