看一看这个就知道了:精简Delphi数据库应用系统-定制BDE驱动程序 Delphi程序员都知道,在数据库应用程序开发完成后,要发布程序需要同时发布BDE(Borland Database Engine),否则会引起错误“A Error occurred while attempingto initilize Borland Database Engine(Error $2109)”。当觉得程序太大而辛辛苦苦精简自己的程序到满意时,却发现BDE管理程序器需要9M之巨,不由感到沮丧,真有点自己的努力被糟蹋的感觉。不过也不必太沮丧,只要肯尝试,还是有办法来精简BDE的。 首先来看看BDE目录中的文件,所有文件确实有近9M大吧。不过有些可能是用不到的,关键文件的作用可参见Bde32.HLP中“Introduction to Borland Database Engine”下的“Core BDE Files”,其中列出了BDE的关键文件及其作用,可以以此作为依据来尝试精简BDE驱动程序。下面是各个文件的作用: 一、不可缺少的文件
Blw32.dll:语言驱动函数库。
Idapi32.dll:BDE基本函数库。
Fareast.bll、Usa.bll:远东语言及美国语言驱动程序,对中文软件不可缺少。
Idr20009.dll:错误信息库。 二、数据库驱动程序(根据需要选择一个或多个)
Idasci32.dll:Ascii文本数据库驱动程序函数库,如果不用Ascii文本数据库,可以不要。
Iddao32.dll:Access数据库驱动程序函数库,如果不用Access数据库,可以不要。
Iddbas32.dll:dBase数据库驱动程序函数库,如果不用dBase数据库,可以不要。
Idodbc32.dll:ODBC数据库驱动程序函数库,如果不用ODBC数据库,可以不要。
Idpdx32.dll:Paradox数据库驱动程序函数库,如果不用Paradox数据库,可以不要。 三、其它驱动程序和配置文件(根据需要选择一个或多个)
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管理器中设置正确后再分发。 四、其它文件(一般不用)
BDE32.HLP、BDE32.CNT:BDE帮助文件,可以不要。
BdeAdmin.exe、BdeAdmin.HLP、BdeAdmin.CNT:BDE管理器及帮助文件,如果不会发生要求软件用户自己配置BDE的情况时,可以不要。 其它*.BLL:其它国家和地区的语言驱动程序,可以不要。
DataBump.EXE、DataBump.HLP、DataBump.CNT:数据库数据转移工具及帮助文件,可以不要。
Localsql.HLP、Localsql.CNT:SQL查询语句帮助文件,可以不要。
Sqllnk32.HLP、Sqllnk32.CNT:SQL连接帮助文件,可以不要。
在根据需要选择文件后,还要写注册表文件。这个应该不成问题,可以手工设置,但最好在程序中设置,在发现注册表中没有相应键值时写入,用TRegFile对象用不了几行代码的。需要设置的注册表键值有(在调用数据库操作前需要有正确的键值存在): 数据驱动程序所在目录的设置:
HKEY_LOCAL_MACHINE\Software\Borland\Database Engine\DLLPATH(字符串值) 语言驱动程序所在目录的设置:
HKEY_LOCAL_MACHINE\Software \Borland\BLW32\BLAPIPATH(字符串值) 语言驱动程序文件名:HKEY_LOCAL_MACHINE\ Software\Borland\BLW32\LOCALE_LIB#(字符串值)
其中#为编号,按顺序为0、1、2、3......如:
HKEY_LOCAL_MACHINE\Software\Borland\BLW32\LOCALE_LIB0="fareasst.bll"
HKEY_LOCAL_MACHINE\Software\Borland\BLW32\LOCALE_LIB1="usa.bll"就这些了,按此办法即可有效减少BDE驱动程序的大小,例如只用TTable控件操作Paradox数据库,则只要Idapi32.dll、Blw32.dll、Idr20009.dll、Fareast.bll、Usa.bll、Idpdx32.dll六个文件即可。 这些文件可放在任何一个目录,只要在注册表指明即可。OK,BDE由9M多减到不到2M,ZIP一下就700多K了,比原来的应用系统减少了不少吧。
Blw32.dll:语言驱动函数库。
Idapi32.dll:BDE基本函数库。
Fareast.bll、Usa.bll:远东语言及美国语言驱动程序,对中文软件不可缺少。
Idr20009.dll:错误信息库。 二、数据库驱动程序(根据需要选择一个或多个)
Idasci32.dll:Ascii文本数据库驱动程序函数库,如果不用Ascii文本数据库,可以不要。
Iddao32.dll:Access数据库驱动程序函数库,如果不用Access数据库,可以不要。
Iddbas32.dll:dBase数据库驱动程序函数库,如果不用dBase数据库,可以不要。
Idodbc32.dll:ODBC数据库驱动程序函数库,如果不用ODBC数据库,可以不要。
Idpdx32.dll:Paradox数据库驱动程序函数库,如果不用Paradox数据库,可以不要。 三、其它驱动程序和配置文件(根据需要选择一个或多个)
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管理器中设置正确后再分发。 四、其它文件(一般不用)
BDE32.HLP、BDE32.CNT:BDE帮助文件,可以不要。
BdeAdmin.exe、BdeAdmin.HLP、BdeAdmin.CNT:BDE管理器及帮助文件,如果不会发生要求软件用户自己配置BDE的情况时,可以不要。 其它*.BLL:其它国家和地区的语言驱动程序,可以不要。
DataBump.EXE、DataBump.HLP、DataBump.CNT:数据库数据转移工具及帮助文件,可以不要。
Localsql.HLP、Localsql.CNT:SQL查询语句帮助文件,可以不要。
Sqllnk32.HLP、Sqllnk32.CNT:SQL连接帮助文件,可以不要。
在根据需要选择文件后,还要写注册表文件。这个应该不成问题,可以手工设置,但最好在程序中设置,在发现注册表中没有相应键值时写入,用TRegFile对象用不了几行代码的。需要设置的注册表键值有(在调用数据库操作前需要有正确的键值存在): 数据驱动程序所在目录的设置:
HKEY_LOCAL_MACHINE\Software\Borland\Database Engine\DLLPATH(字符串值) 语言驱动程序所在目录的设置:
HKEY_LOCAL_MACHINE\Software \Borland\BLW32\BLAPIPATH(字符串值) 语言驱动程序文件名:HKEY_LOCAL_MACHINE\ Software\Borland\BLW32\LOCALE_LIB#(字符串值)
其中#为编号,按顺序为0、1、2、3......如:
HKEY_LOCAL_MACHINE\Software\Borland\BLW32\LOCALE_LIB0="fareasst.bll"
HKEY_LOCAL_MACHINE\Software\Borland\BLW32\LOCALE_LIB1="usa.bll"就这些了,按此办法即可有效减少BDE驱动程序的大小,例如只用TTable控件操作Paradox数据库,则只要Idapi32.dll、Blw32.dll、Idr20009.dll、Fareast.bll、Usa.bll、Idpdx32.dll六个文件即可。 这些文件可放在任何一个目录,只要在注册表指明即可。OK,BDE由9M多减到不到2M,ZIP一下就700多K了,比原来的应用系统减少了不少吧。
解决方案 »
- 我们公司也被告DELPHI侵权了,呵呵,不知道他哪里找到的信息
- delphi执行存储过程出
- 上海耀华称重仪表相关开发
- ado数据表怎样动态的创建一个字段
- 很菜的基础问题
- 我今天才学delphi,看道启动画面上写了一个 unregedit,好像是未注册,我怎么注册呢?
- 要写一个频繁访问多个远程数据库的程序,有速度要求所以得用多线程,请各位出出注意该怎么写?
- 局部择优搜索和全局择优搜索
- 远程控制
- Active的问题........
- ?谁知道在用QuickRep做报表时QRSubDetail上的QRExpr怎样获取DataModule的ADOQuery?!
- a12345(唯微)还有其他成都的程序员出来?我们一起来讨论以下成都的软件吗?可以吗?
Idapi32.dll:BDE基本函数库
Blw32.dll:语言驱动函数库
Idr20009.dll:错误信息库
Fareast.bll:远东语言驱动程序
Usa.bll:美国语言驱动程序
以下文件为根据需要可选:
如用Paradox,则应选择:Idpdx32.dll
如用Dbase,则应选择:Iddbas32.dll
如用Access,则应选择:Iddao32.dll
如用Ascii,则应选择:Idasci32.dll
如用TBatchMove,则应选择:Idbat32.dll
如用Data Repostitory,则应选择:Iddr32.dll
如用ODBC,则应选择:Idodbc32.dll
如用BDE DataSet Provider DLL,则应选择:Idprov32.dll
如用SQL查询,则应选择:Idsql32.dll
下面我们就以用InstallShield来制作一个Paradox数据库应用系统的安装程序为例:
1.启动程序设置有关文件目录路径,进入Setup Checklist;
2.在Set the Visual Design中设置程序名、程序目录、安装程序主窗口等;
3.在Specify Components and Files中设置Groups and Files项,在Program Files中加入用户的所有程序文件和数据库表文件,以及下列文件:Idbat32.dll、Usa.btl、Idapi.cfg、Charset.cvb、Bantam.dll、BLW32.dll、Idapi32.dll、Fareast.btl、Idpdx32.dll、Idr20009.dll、Idsql32.dll(以上文件必须含目录路径);
4.在Dialog Boxes中设置所需安装对话框;
5.在Make Registry Changes中设置Keys项,在HKEY_LOCAL_MACHINE中加入software\borland\blw32和software\borland\database engine两项,并且在blw32值中加入“Blapipath ‘以上文件目录’”、“LOCALE_LIB0 ‘以上文件目录’\Fareast.bll”和“LOCALE_LIB1 ‘以上文件目录’\Usa.bll”,在database engine值中加入“Dllpath ‘以上文件目录’”、“Configfile01 ‘以上文件目录’\Idapi.cfg”;
6.在Specify Folder and Icons中根据实际要求设置有关项目;
7.在Run Disk Builder中设置安装盘的有关信息;
8.最后进行Test the Installation和Create Distribution Media即可完成安装程序的制只拷贝BDE文件是不行的,还要写注册表:
必需的注册表项目包括:
1. BDE动态连接库文件位置设置
Key : "HKEY_LOCAL_MACHINE\Software\Borland\Database Engine"
Item : "DLLPATH"
Value : BDE动态连接库文件所在位置,如"C:\Program Files\Borland\Common Files\BDE"
(打开"C:\Program Files\Borland\Common Files\BDE\BDE32.hlp",查找"Core Files"即可了解BDE各动态连接库文件的作用)
2. BDE语言驱动文件路径设置
Key : "HKEY_LOCAL_MACHINE\Software\Borland\BLW32"
Item : "BLAPIPATH"
Value : BDE语言驱动文件所在路径,如"C:\Program Files\Borland\Common Files\BDE"
(BDE语言驱动就是那些*.BLL文件)
3. 指定可用的BDE语言驱动文件
Key : "HKEY_LOCAL_MACHINE\Software\Borland\BLW32"
Item : "LOCALE_LIB#" (#表示数字
如"LOCALE_LIB1"、"LOCALE_LIB3"等)
Value : 指定各BDE语言驱动文件,如"C:\Program Files\Borland\Common Files\BDE\USA.BLL"
(一般必需的语言驱动文件有"USA.BLL"
EUROPE.BLL
和"FAREAST.BLL",为保险起
见,建议将所有语言驱动都设置上。在安装了Delphi6的机器上,用Regedit打开注册
表,一看你就明白了怎么设了)