用ADO进行数据库编程.pdf_第1页
用ADO进行数据库编程.pdf_第2页
用ADO进行数据库编程.pdf_第3页
用ADO进行数据库编程.pdf_第4页
全文预览已结束

下载本文档

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

文档简介

用用 ADO 进行数据库编程进行数据库编程 ActiveX 数据对象 ADO 是 OLE DB 上面的高层数据库 API 我们在 C 程序中也可以 调用 ADO 本文将在 VC 6 0 环境下做一个小小的例子解释如何使用 ADO 1 生成应用程序框架并初始化 OLE COM 库环境 创建一个标准的 MFC AppWizard exe 应用程序 然后在应用程序类的 InitInstance 函 数中初始化 OLE COM 库 因为 ADO 库是一个 COM DLL 库 BOOL CADOTestApp InitInstance 初始化 OLE COM 库环境 AfxOleInit 2 引入 ADO 库文件 使用ADO前必须在工程的stdafx h文件里用直接引入符号 import引入ADO库文件 以使编译器能正确编译 代码如下 include comdef h import c program files common files system ado msado15 dll no namespace rename EOF adoEOF 头文件comdef h使我们的应用程序能够使用Visual C 中的一些特殊COM支持类 这些类使得处理 OLE 自治更为容易一些 OLE 自治是 ADO 使用的数据类型 后三行使用 import 指令在我们的应用程序中输入 ADO 类库定义 ADO 类的定义是作为一种资源存储在 ADO DLL msado15 dll 中 在其内部称为类型 库 类型库描述了自治接口 以及 C 使用的 COM vtable 接口 当使用 import 指令时 在运行时 Visual C 需要从 ADO DLL 中读取这个类型库 并以此创建一组 C 头文 件 这些头文件具有 tli 和 tlh 扩展名 读者可以在项目的目录下找到这两个文件 在 C 程序代码中调用的 ADO 类要在这些文件中定义 程序的第三行指示 ADO 对象不使用名称空间 在有些应用程序中 由于应用程序中的 对象与 ADO 中的对象之间可能会出现命名冲突 所以有必要使用名称空间 如果要使用名 称空间 则可把第三行程序修改为 rename namespace AdoNS 第四行代码将 ADO 中的 EOF 文件结束 更名为 adoEOF 以避免与定义了自己的 EOF 的其他库冲突 3 利用智能指针进行数据库操作 在CaboutDlg头文件中定义两个ADO智能指针类实例 并在对话框中加入一个ListCtrl ConnectionPtr m pConnection RecordsetPtr m pRecordset ClistCtrl m List ADO 库包含三个智能指针 ConnectionPtr CommandPtr 和 RecordsetPtr ConnectionPtr 通常被用来创建一个数据连接或执行一条不返回任何结果的 SQL 语句 如一个存储过程 CommandPtr 返回一个记录集 它提供了一种简单的方法来执行返回记录集的存储过 程和 SQL 语句 在使用 CommandPtr 接口时 可以利用全局 ConnectionPtr 接口 也可 以在 CommandPtr 接口里直接使用连接串 RecordsetPtr 是一个记录集对象 与以上两种对象相比 它对记录集提供了更多的控 制功能 如记录锁定 游标控制等 在 OnInitDialog 中加入以下代码 BOOL CAboutDlg OnInitDialog CDialog OnInitDialog variant t TheValue m List ResetContent m pConnection CreateInstance uuidof Connection m pRecordset CreateInstance uuidof Recordset try m pConnection Open DSN ADOTest 0 连接叫作 ADOTest 的 ODBC 数据源 m pRecordset Open SELECT FROM BlockDefine IDispatch m pConnection adOpenDynamic adLockOptimistic adCmdText 执行 SQL 语句得到一个记录集 while m pRecordset adoEOF 遍历所有记录 TheValue m pRecordset GetCollect BlockIndex 得到字段 BlockIndex 的值 if TheValue vt VT NULL m List AddString char bstr t TheValue 将该值加入到列表控件中 m pRecordset MoveNext m pRecordset Close m pConnection Close catch com error e 异常处理 AfxMessageBox e ErrorMessage m pRecordset NULL m pConnection NULL return TRUE return TRUE unless you set the focus to a control 程序中通过 variant t 和 bstr t 转换 COM 对象和 C 类型的数据 variant t 类封 装了 OLE 自治 VARIANT 数据类型 在 C 中使用 v

温馨提示

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

评论

0/150

提交评论