Delphi 7.0 开发技巧集锦
这里为读者提供一些实用的开发技巧和某些常见问题的解决途径。 很多程序设计人员都 有这样的体会, 那就是往往自己冥思苦想某个问题的时候, 旁人的一句点拨就可以拨云见日, 灵感突现。因此下面以 FAQ 的形式列举了在开发过程中可能会遇到的
问题,以飨读者。
1.1 关于 Delphi 的 BDE
Delphi 操作数据库主要是利用 BDE 来进行。BDE 是基于 32 位 Windows 内核的数据库 引擎和连接工具,支持现有的大多数数据库。它具有如下一些特点: 1. 为多种数据库格式提供统一的应用程序接口,包括任何 ODBC 数据源。 2. 适应 C/S 数据库应用的开发, 程序设计人员可以访问所有本地和服务端的数据, 并 且很容易实现应用的向上兼容性。 3. 对于 Delphi 标准的数据库访问(如 Paradox 和 dBASE) ,BDE 提供的连接方式是 最快的。 4. 直接实时的访问数据源。
1.1.1 如何自定义 BDE 的驱动程序
BDE 中按照各个文件的作用可分为以下几部分,这些文件均保存在“? \Program Files\Common Files\Borland Shared\BDE”目录下。 1. 必备文件 Blw32.dll:语言驱动函数库。 Idapi32.dll:BDE 基本函数库。 Fareast.bll、Usa.bll:远东语言及美国语言驱动程序,对中文
软件不可缺少。 Idr20009.dll:错误信息库。 2. 数据库驱动程序(可选) Idasci32.dll:Ascii 文本数据库驱动程序函数库; Iddao32.dll:Access 数据库驱动程序函数库; Iddbas32.dll:dBase 数据库驱动程序函数库; Idodbc32.dll:ODBC 数据库驱动程序函数库; Idpdx32.dll:Paradox 数据库驱动程序函数库。 3. 其他驱动程序和配置文件(可选) Idbat32.dll:批操作驱动程序函数库,如果不用 TBatchMove 组件或 DbiBatchMove 类函数,可以不要。 Iddr32.dll:Data Repository 驱动程序函数库,如果不用 Data Repository 功能,可以 不要。 Idprov32.dll:BDE DataSet provide 驱动
程序函数库,如果不用 TProvider 组件,可 以不要。 Idqbe32.dll:QBE 驱动程序函数库,如果不用 Query By Example,可以不要。 Idsql32.dll:SQL 查询驱动程序函数库,如果不用 TQuery 进行
查询,可以不要。 Idapi32.cfg:BDE 配置文件,如果程序中没有特殊要求,可以不要。也可以在 BDE 管理器中设置正确后再分发。 4. 其他文件(一般不用)
BDE32.HLP、BDE32.CNT:BDE 帮助文件。 BdeAdmin.exe、BdeAdmin.HLP、BdeAdmin.CNT:BDE 管理器及帮助文件。 *.BLL:其他国家和地区的语言驱动程序。 DataBump.EXE、DataBump.HLP:数据库数据转移工具及帮助文件。 Local
sql.HLP、Localsql.CNT:SQL 查询语句帮助文件。 Sqllnk32.HLP、Sqllnk32.CNT:SQL 连接帮助文件。
1.1.2 如何注册 BDE
安装 BDE 仅仅复制前面提到的各种文件是不行的,还要等到向注册表
注册之后才可
以 使用。 必需的注册表项目包括: 1. BDE 动态链接库文件位置设置(如图 1 所示) Key:HKEY_LOCAL_MACHINE\Software\Borland\Database Engine Item:DLLPATH Value:BDE 动态链接库文件所在位置
图 1 BDE 动态链接库文件位置设置
2. BDE 语言驱动文件路径设置(如图 2 所示) Key:HKEY_LOCAL_MACHINE\Software\Borland\BLW32 Item:BLAPIPATH Value:BDE 语言驱动文件所在路径
图 2 BDE 语言驱动文件路径设置
3. 定义可用的 BDE 语言驱动文件(如图 3 所示) Key:HKEY_LOCAL_MACHINE\Software\Borland\BLW32 Item:LOCALE_LIB#" (#表示数字, 如"LOCALE_LIB1"、"LOCALE_LIB3"等) Value:指定各 BDE 语言驱动文件
图 3 定义可用的 BDE 语言驱动文件
1.1.3 如何在运行期检测和建立数据库别名
在前面
学习的案例中,数据库别名的建立、修改和删除等维护工作,一般在 BDE Administrator 中进行,并在
设计期就已经设置完毕,但这些功能在运行期将如何实现呢?在
Delphi 的 BDE 中,当数据库类型为