ADO连接数据库.ppt_第1页
ADO连接数据库.ppt_第2页
ADO连接数据库.ppt_第3页
ADO连接数据库.ppt_第4页
ADO连接数据库.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

ADO数据库编程 第七章 2 回顾 设计应用程序菜单为应用程序添加快捷键弹出式菜单的设计工具栏编程状态栏编程树控件及列表控件的使用 本章目标 了解MFC下各种访问数据库的方式主要掌握ADO主要导出接口掌握使用ADO进行数据库操作 4 ODBC DAO和OLEDB ODBC 开放数据库接口 是一种标准的基于SQL的接口 它提供了应用程序与数据库之间的接口 使得任何一个数据库都可以通过ODBC驱动程序与指定的DBMS相连DAO使用Jet数据库引擎形成一系列的数据访问对象 数据库对象 表和查询对象 记录集对象等 可以打开一个Access数据库文件 MDB文件 也可直接打开一个ODBC数据源以及使用Jet引擎打开一个ISAM 被索引的顺序访问方法 类型的数据源 dBASE FoxPro Paradox Excel或文本文件 OLEDB试图提供一种统一的数据访问接口 并能处理除了标准的关系型数据库中的数据之外 还能处理包括邮件数据 Web上的文本或图形 目录服务 DirectoryServices 以及主机系统中的IMS和VSAM数据 OLEDB提供一个数据库编程COM 组件对象模型 接口 使得数据的使用者 应用程序 可以使用同样的方法访问各种数据 而不用考虑数据的具体存储地点 格式或类型 这个COM接口与ODBC相比 其健壮性和灵活性要高得多 5 MFCODBC技术 MFC的ODBC类对较复杂的ODBCAPI进行了封装 提供了简化的调用接口CDatabase类 主要功能是建立与数据源的连接 可以在整个应用程序中共享这些信息 CRecordset类 代表从数据源选择的一组记录 CRecordset类允许指定要运行的SQL查询 它将运行查询并维护自数据库返回的记录集 可以修改和更新记录 还可增加 删除记录 并将所做的变动反馈到该数据库中 CRecordView类 提供了一个表单视图与某个记录集直接相连 利用对话框数据交换 DDX 机制在记录集与表单视图的控件之间传输数据 CFieldExchange类 支持记录字段数据交换 DFX 即记录集字段数据成员与相应的数据库的标的字段之间的数据交换 CDBException类 代表ODBC类产生的异常 6 ADO ADO是目前在Windows环境中比较流行的客户端数据库编程技术 它是Microsoft为最新和最强大的数据访问范例OLEDB而设计的 是一个便于使用的应用程序层接口 ADO使用户应用程序能够通过 OLEDB提供者 访问和操作数据库服务器中的数据 由于它兼具有强大的数据处理功能 处理各种不同类型的数据源 分布式的数据处理等等 和极其简单 易用的编程接口 因而得到了广泛的应用 ADO技术基于COM ComponentObjectModel 组件对象模型 具有COM组件的许多优点 可以用来构造可复用应用框架 被多种语言支持 能够访问包括关系数据库 非关系数据库及所有的文件系统 另外 ADO还支持各种B S与基于Web的应用程序 具有远程数据服务RDS RemoteDataService 的特性 是远程数据存取的发展方向 7 ADO对象模型 连接对象Connection通过连接可以从应用程序中访问数据源 连接时必须指定要连接的数据源以及连接所使用的用户名和用户口令 命令对象Command可以通过已建立的连接发出命令 从而对数据源进行指定操作 一般情况下 命令可以在数据源中添加 修改或删除数据 也可以检索数据 参数对象Parameter在执行命令时可以指定参数 参数可以在命令发布之前进行更改 例如 可以重复发出相同的数据检索命令 但是每一次指定的检索条件不同 记录集对象Recordset查询命令可以将查询结果储存在本地 这些数据以行为单位 返回数据的集合被称为记录集字段对象Field一个记录集包含一个或多个字段 每一字段 列 都包含名称 数据类型和值属性 错误对象Error错误可随时在程序中发生 通常是由于无法建立连接 执行命令或对某些状态的对象进行操作 属性对象Property 8 ADO的4种类型的集合 Connection对象具有Errors集合 包含为响应与数据源有关的单一错误而创建的所有Error对象 Command对象具有Parameters集合 包含应用于Command对象的所有Parameter对象 Recordset对象具有Fields集合 包含Recordset对象中所有列的Field对象 Connection对象 Command对象 Recordset对象和Field对象都具有Properties集合 它包含各个对象的Property对象 9 使用ADO创建数据库应用程序 在MFC应用程序中使用ADO数据库的一般过程是 添加对ADO的支持 创建一个数据源连接 对数据源中的数据库进行操作 关闭数据源 10 引入ADO库 在VisualC 中 使用ADO开发数据库之前需要引入ADO库 可以在StdAfx h文件末尾处引入ADO库文件 endif AFX NO AFXCMN SUPPORT include MFCsupportforWindowsCommonControls import C ProgramFiles CommonFiles System ADO msado15 dll no namespacerename EOF adoEOF include AFX INSERT LOCATION 预编译命令 import是编译器将此命令中所指定的动态链接库文件引入到程序中 并从动态链接库文件中抽取出其中的对象和类的信息 icrsint h文件包含了VisualC 扩展的一些预处理指令 宏等的定义 用于与数据库数据绑定 11 连接到数据库2 1 在能够使用ADO对象之前 必须为应用程序初始化COM环境BOOLCADOApp InitInstance CoInitialize NULL AfxEnableControlContainer 建立数据库的连接需要使用连接对象Connection 首先定义一个 ConnectionPtr类型指针 然后调用CreateInstance方法实例化 例如 ConnectionPtrm pConnection m pConnection CreateInstance uuidof Connection 12 连接到数据库2 2 ADO使用Connection对象来建立与数据库服务器的连接 它相当于MFC中的CDatabase类 和CDatabase类一样 调用Connection对象的Open即可建立与服务器的连接函数原型 HRESULTConnection Open bstr tConnectionString bstr tUserID bstr tPassword longOptions 参数 ConnectionString为连接字串 UserID是用户名 Password是登录密码 Options是选项 通常用于设置同步和异步等方式 bstr t是一个COM类 用于字符串BSTR 用于Automation的宽字符 操作 不同的数据 其连接字串有所不同 13 Connection对象 Connection对象除了建立与数据库服务器的连接外 还可以通过OpenSchema来获取数据源的自有信息 如 数据表信息 表字段信息以及所支持的数据类型等 OpenSchema方法中的adSchemaColumns是一个预定义的枚举常量 用来获取与 列 字段 相关的信息记录集 该信息记录集的主要字段名有 TABLE NAME COLUMN NAME 类似的 若在OpenSchema方法中指定adSchemaTables枚举常量 则返回的记录集的字段名主要有 TABLE NAME TABLE TYPE 14 Recordset对象 上述的OpenSchema函数返回的是记录集指针 RecordsetPtr 对应类型Recordset对象 RecordsetPtr指针与数据库是的游标类似 可以遍历一到多个记录集 常用指针指向操作有指向下一条记录MoveNext 指向上一条记录MovePrevious 指向第一条记录MoveFirst 指向最后一条记录MoveLast 指向下一个记录集NextRecordset 访问对应字段记录值用GetCollect 字段名 或Fields GetItem 字段名 GetValue 15 例子3 1 1 用MFCAppWizard创建一个默认的单文档应用程序Ex ADO 但在向导的第6步将CEx ADOView的基类由默认的CView选择为CListView类 以便更好地显示和操作数据表中的记录 2 在CEx ADOView PreCreateWindow函数添加下列代码 用来设置列表视图内嵌列表控件的风格 BOOLCEx ADOView PreCreateWindow CREATESTRUCT ConnectionPtr RecordsetPtr和 CommandPtr分别是ADO对象Connection Recordset和Command的智能指针类型 16 3 2 voidCEx ADOView OnInitialUpdate CListView OnInitialUpdate m pConnection CreateInstance uuidof Connection 初始化Connection指针m pRecordset CreateInstance uuidof Recordset 初始化Recordset指针m pCommand CreateInstance uuidof Command 初始化Recordset指针 连接数据源为 DatabaseExampleForVC m pConnection ConnectionString DSN DatabaseExampleForVC m pConnection ConnectionTimeout 30 允许连接超时时间 单位为秒HRESULThr m pConnection Open 0 if hr S OK MessageBox 无法连接指定的数据库 获取数据表名和字段名 RecordsetPtrpRstSchema NULL 定义一个记录集指针pRstSchema m pConnection OpenSchema adSchemaColumns 获取表信息 将表信息显示在列表视图控件中CListCtrl 17 3 3 for inti 0 iadoEOF str Format d nItem 1 m ListCtrl InsertItem nItem str for inti 1 iFields GetItem bstr t LPCSTR strHeader i Value m ListCtrl SetItemText nItem i value pRstSchema MoveNext nItem

温馨提示

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

评论

0/150

提交评论