如何做最小的安装盘?(200分)

  • 主题发起人 主题发起人 cowboy
  • 开始时间 开始时间
C

cowboy

Unregistered / Unconfirmed
GUEST, unregistred user!
帮别人作了一个小数据库程序,非常简单。
现在要做安装盘拿去用。我已检索过了,
方法很多。但是作出的盘非常大。
我的程序要拷贝30份,所以越小越好。
谁能解释一下,作盘时需要哪些必须的
动态连接库。
我作的是DBASE数据库。
事情比较急,请尽快答复。
谢谢。
 
精简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了,比原来的应用系统减少了不少吧。

---- 以上程序在PWIN98+DELPHI3.0下调试通过

 
以上的内容我看到过,不过不是很明白。
是不是先选中有关文件,然后在将上边的
信息写到注册表中就可以了?
 
省省,找一个不用BDE的控件即可.
如果需要,请问候我,fyao_xy@sina.com
 
我有一个能显示你程序所用DLL的程序,我给你发过去。
 
不用BDE,就要用ADO或者DAO,后两者可能在用户的机器上已经存在,所以,要做最小的安装盘,只能用这两个方法了。
 
to 于小澜:
哪里有该程序(显示你程序所用DLL的程序)?请告诉我, 我去下载。

3q

<<<===Arewen
 
请试试看:
有一套YOURSELF控件, 它可以让你做自己的安装程序。
并且可以让你选择所用的数据库类型, 它会自动选择安
装BDE驱动程序。
该控件在www.inprises.com有。

<<<===Arewen
 
救火的来了(包成功)

答:如果是Dbase数据库应用系统包括以下的相关文件:
IdApi32.dll
Iddbas32.dll
IdR20009.dll
Bantam.dll
Charset.cvb
fareast.btl

还有:你的库文件、你的.exe文件等。
其它统统的不要。
得两张盘。

还告诉你一个验证的方法:(其它类型数据库)
先打个大一点的包。找台干净的机器试一试装上去,
运行它,(别退出)再把.dll文件逐个删除,有用的文件会提示你不能删除。
剩下的不能删除的文件就是你要的文件。妙吧!


 
对不起拼写错误,应该是Youseful。

另外再次说明一下,该组控件不仅能按你使用的数据库类型来选择BDE驱动程序。
(让你不必死记各种数据库类型的BDE驱动程序的文件名!舒服吧?以不变应万
变,BDE可是在不断升级的噢)

更有甚者,也许在你的机器很安装了众多的第三方控件,在一个应用程序中可能
用了它们,但程序一长,时间一长,自己也忘了到底用了哪些,就算知道了,还
得自己去找出对应的运行时间库,然后打包进自己的安装程序。多么痛苦!
但这一切都交给Youseful吧!它能自动找出来!(有些象做广告了~_*)

另外各种安装界面一切由你决定,这么强大的功能只需执行它的向导就可轻松完
成。比delphi带的install shield要好多了。

200分给我吧 :)

<<<===Arewen
 
  Delphi具有强大的数据库应用程序开发功能,其Client/Sever版本可以开发一般的单机数据库应用系统、普通Client/Sever应用系统直至基于Web的多层应用,其中自然离不开Borland数据库引擎(BDE)的功劳。不过在没有安装过Delphi程序的计算机上运行数据库程序时,必须同时分发庞大的BDE文件,Borland建议用户用Delphi附带的InstallShield制作安装程序来解决这些问题。但怎样选择BDE文件才能使自己的安装程序更加精炼呢?我首先介绍一下其中几个必须的文件:
  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即可完成安装程序的制作。






 
我是这样子做的,仅供参考:
1.把下列文件放到程序的同一目录:(这些文件都在BDE的目录底下)
bantam.dll,farest.btl,idapi32.dll,idbat32.dll, iddbas32.dll, idpdx32.dll,idr20009.dll,idsql32.dll(用到Query的话需要这个文件)
具体还需其它什么文件请参考上面的贴子,
2.在程序中建立别名/注册数据库
procedure TForm1.FormCreate(Sender: TObject);
var
ph : TStringList;
begin
ph := TStringList.Create;
Session.GetAliasNames(ph);
if (ph.IndexOf('nldbf') = -1) then //判断别名nldbf是否存在
begin
Session.AddStandardAlias('nldbf', ExtractFilePath(Application.ExeName), 'Paradox'); //Paradox-->数据库类型,
//如:Foxpro等我想DBASE也差不多吧!
Session.SaveConfigFile;
end;
ph.Free;

......

end;
3.用CreatInstall制作安装盘(全中文,非常好用),制作安装盘前可用AsPack2000
(解密版)将主程序压缩一下,压缩完后的文件大小小于原来的40%,还可以照样正常运
行,这样做出来的安装盘就很小了。

以上所用到的技巧和工具软件在我的主页(http://windstorm2000.yeah.net)上都
有,欢迎前去下载!
 
delphi5 中用 ClientDataSet 只需要MIDAS.dll
 

去: http://go.163.com/~hunterzhang/ 下载一个不用BDE 的 Table.

发行时只需EXE,DBF文件(拷贝到子目录即可)。
用AsPack压缩一下EXE更好。(我想一张1.44"软盘即可搞定)。
 
抱歉,上次问题解决后一直未来,
现在送分给大家。
再次感谢你们的热心帮助!
 

Similar threads

S
回复
0
查看
835
SUNSTONE的Delphi笔记
S
D
回复
0
查看
911
DelphiTeacher的专栏
D
后退
顶部