·提高在google中排名的重点(精简版) ·为什么创建VCL for .NET? -- Delphi编译器架构师撰文(2)
·Delphi数据库编程一日通(3) ·在DELPHI中如何调用系统对话框
精简DELPHI数据库系统的补充。
在网上看到一篇文章《精简DELPHI数据库系统》,本人依实际操作经验,觉得其文小有疏漏,有必要在此加以补充。
大家都知道,用DELPHI做数据库虽然方便,但发布时必需同时分发BDE(Borland公司的32位数据库引擎),全部文件需17兆之巨,如此怎么还能彰显DELPHI的优越性呢?!所以程序员在用DELPHI做数据库时,如何根据实际情况精简BDE是必不可少的一步。
BDE中各文件的具体作用,可以参考BDE32.HELP中Introduction to Borland Database Engine/Core BDE files 在此只以我作的一个数据库为例谈谈精简BDE的具体步骤。
程序使用PARADOX数据库,用到了TQUERY和TBACHMOVE控件,BDE文件如下:
blw32.dll 国际语言驱动支持,必需
Bantam.dll 未查到相关解释,缺少会引起BDE初始化错误
idapi32.dll 数据驱动基本函数集,必需
fareast.btl 东方语言驱动程序,使用中文必需
idr20009.dll 错误信息,必需
charset.cvb 字符集转换,如用到CHARSET_GB2312,则必不可少
idbat32.dll 批量移动数据支持(针对TBATHMOVE控件)
idpdx32.dll PARADOX数据库驱动程序
idsql32.dll SQL查询引擎(针对TQUERY控件)
IDAPI.CFG BDE配置文件,存储数据库别名,必不可少
共10个文件,2.3M,ZIP后830K,以前用VFP需要3张软盘的桌面数据库,现在一盘搞定.
除了拷贝BDE文件外,还要对系统进行一些设置工作,具体程序如下:
procedure TForm1.FormCreate(Sender: TObject);
var stl:tstringlist;
myrg:tregistry;
i:integer;
path:string;
begin :p>
path:=extractfilepath(application.ExeName); //获得当前路径;
stl:=tstringlist.Create ;
myrg:=tregistry.Create;
myrg.RootKey :=HKEY_LOCAL_MACHINE;
try
IF NOT myrg.KeyExists(software\Borland) then
begin //检查相应键值以确定BDE是否注册/当前数据库程序是否初次运行;
showmessage(初次使用,系统将进行必要设置!);
myrg.OpenKey(software\Borland\Database Engine,true);
myrg.WriteString(DLLPATH,path+bde); //写入数据驱动程序所在目录
myrg.closekey;
myrg.OpenKey(software\Borland\BLW32,true);
myrg.WriteString(BLAPIPATH,path+bde); //写入语言驱动程序所在目录
myrg.CloseKey;
session.GetAliasNames(stl); //获取已注册的数据库别名列表
for i:=0 to stl.Count-1 do begin
session.DeleteAlias(stl.Strings[i]); //删除所有别名,否则无法重新写入
session.SaveConfigFile;
end;
session.AddStandardAlias(hz,path+db\total,paradox);//注册自己需要的数据库别名
session.SaveConfigFile;
END;
finally
myrg.Free;
stl.Free;
end;
end;
本程序在WIN98下DELPHI4中运行通过.
[1]
--->腾讯QQ IP数据库 2007.05.13┊附带IP数据维护工具V1.1┊珊瑚虫精简绿色特别版
--->腾讯TM2007 AresCN版 V0.7.5.11┊以即时通讯为核心精简版 QQ┊纯净绿色特别版
--->腾讯QQ IP数据库 2007.05.06┊附带IP数据维护工具V1.1┊珊瑚虫精简绿色特别版
--->腾讯QQ2007 Beta 2 威雅[ViYa]精简 V0.78┊升级QQ测试版内核┊纯净绿色特别版
--->QQ2007 BETA1 飘云/珊瑚虫┊简体中文绿色精简双IP版
Tags: 精简 DELPHI 数据库 系统