logo

您所在位置网站首页 > 海量文档  > 计算机 > Delphi/Perl

DELPHI 5开发人员指南30.doc 40页

本文档一共被下载: ,您可全文免费在线阅读后下载本文档。

  • 支付并下载
  • 收藏该文档
  • 百度一下本文档
  • 修改文档简介
全屏预览

下载提示

1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
特别说明: 下载前务必先预览,自己验证一下是不是你要下载的文档。
  • 内容提供方 tcpe(上传创作收益人)
  • 发布时间:2017-08-27
  • 需要金币50(10金币=人民币1元)
  • 浏览人气
  • 下载次数
  • 收藏次数
  • 文件大小:7.94 MB
下载过该文档的会员
你可能关注的文档:
下载 第30章 扩展数据库 VCL 本章内容: · 使用BDE · dBASE表 · Paradox表 · 扩展TDataSet VCL(Visual Component Library)的数据库体系结构是用 BDE(Borland Database Engine)通信的, BDE是一个强大且可靠的数据库中间件。 VCL就好像你与数据库之间的绝缘体,它使你可以按相同的 方式访问不同类型的数据库。尽管这增加了可靠性、可伸缩性和易用性,但有一个不足: BDE的许多 功能无法在 VCL的数据库框架中实现。这一章就介绍怎样与 BDE或其他数据源直接通信,相当于扩展 了VCL。 30.1 使用BDE 当你要编写一个直接访问 BDE的应用程序时,有一些规则需要记住。这一节就介绍怎样从 Delphi 应用程序中直接调用 BDE API。 30.1.1 BDE单元 所有BDE的函数、类型和常量都是在 BDE单元中定义的。凡是要直接调用 BDE API的单元一定要 引用BDE单元。另外, BDE单元的接口部分是 BDE.INT文件,这个文件可以在 ..\Delphi 5\Doc目录中找 到。可以利用这个文件来访问一些函数和记录。 提示 为了获得更多帮助,建议你打开位于 \Program Files\Borland\Common Files\BDE目录中 BDE32.hlp帮助文件。这个帮助文件中包含了所有BDE API的详细说明以及很好的Object Pascal 和C语言的例子。 30.1.2 Check() 所有 BDE函数都返回一个 DBIRESULT类型的值,以表明函数调用是成功还是失败。每次都要检 查函数的返回值是很讨厌的,为此, Delphi定义了一个过程叫 Check(),它需要传递一个 DBIRESULT 类型的参数。如果 BDE函数没有调用成功, Check()就会触发异常。下面的代码演示了应当怎样来调用 BDE函数: // 不应当这样调用 var Rez:DBIRESULT; A:ARRAY[0..dbiMaxUserNameLen] of Char; begin Rez:=dbiGetNetUserName(A); // 调用BDE函数 if Rez<>DBIERR_NONE then // 处理错误 下载  第30章 扩展数据库VCL  1045 // 在这里处理错误 else begin // 继续做其他事情 end; end; // 应当这样调用 BDE函数 var A:array[0..dbiMaxUserNameLen] of Char; begin { 处理错误和调用在同一行代码中进行。 } { 如果有错误,将触发异常 } Check(dbiGetNetUserName(A)); // 继续做其他事情 end; 30.1.3 指针和句柄 许多BDE函数需要传递数据库指针的句柄作为参数。大致说来,指针是一种 BDE对象,它代表数 据库的某个位置。指针句柄的类型是 hBDICur。在Dephi的项目表、查询和存储过程中,指针对应着当 前记录。 TTable、TQuery和TSoredProc的Handle属性就是指针的句柄。当调用需传递指针句柄的 BDE 函数时,可以用 Handle属性作为参数。 有些BDE的函数需要传递数据库的句柄作为参数。数据库句柄的类型是 hDBIDb。对于 dBASE或 P a r a d o x来说,它代表数据库 (本地或网络 )的工作目录;对于 S Q L数据库来说,它代表数据库文件。 T D a t a b a s e的H a n d l e属性就是数据库的句柄。如果连接数据库时没有用 T D a t a b a s e组件,可以通过 TTable、TQuery和TStoredProc的DBHandle属性获得数据库句柄。 30.1.4 使指针同步 BDE的指针对应着数据集的当前记录。为了优化性能, Delphi采取了一些办法来缓存记录,这样就 有可能出现数据集的当前记录与 BDE的指针不同步的情况。一般情况下,这不是什么问题,因为 VCL 会解决这个问题。不过,当你要直接调用 BDE函数而这些函数需要传递指针的句柄作为参数时,就应 当保证传递过去的确实是数据集的当前记录所对应的指针。这看上去很难,其实相当简单。只要调用 数据集组件(它们都是从TDataSet继承下来的)的UpdateCursorPos()方法就可以使当前记录与指针同步。 同样,当调用了 BDE函数后,有可能使指针的位置发生了变化,此时应当通知 VCL使当前记录的 位置与指针的位置同步。为此,必须在调用了 BDE函数后立即调用数据集组件的 CursorPosChanged() 方法。请看下面的代码:

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片

“原创力文档”前称为“文档投稿赚钱网”,本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。原创力文档是网络服务平台方,若您的权利被侵害,侵权客服QQ:3005833200 电话:19940600175 欢迎举报,上传者QQ群:784321556