用Delphi生成6M多的EXE文件﹐連接SQL Server用ADO,當運行開始至出現密碼登錄窗口要長達20秒左右﹗﹗﹗

用Delphi開發的一程序﹐生成EXE文件后約6M多﹐連接SQL Server用ADO,當運行開始至出現密碼登錄窗口要長達20秒左右﹐請問怎樣才能縮短這個啟動所用的時間﹖
數據庫控件太多數是用ADOQuery﹐而且初始時都是False﹐常理來說運行開始至出現密碼登錄窗口不會連接到SQL Server吧﹖就算連接﹐數據控件初始都為Fasle,也用不到要20多秒啊﹗
各位大蝦﹐有何解決方法啊?
[208 byte] By [shift-宁静的夜,思索的我.] at [2007-12-11]
# 1
6M?太大了
使用动态连接不要静态连接
使用运行时包

所有窗口都动态生成
# 2
注意不要静态生成打印或打印预览模块,最费时间了
xujflia-也许 at 2007-10-21 > top of Msdn China Tech,Delphi,VCL组件开发及应用...
# 3
同意。
# 4
我的除了必要的2-3个用静态的其他都是动态的但也很慢!
用三层结构连接SQL server ,exe文件2.12M.
xjpiking-king at 2007-10-21 > top of Msdn China Tech,Delphi,VCL组件开发及应用...
# 5
Project菜单,option子菜单。弹出的Project Options的Forms选项卡可以设置Auto-create forms和Available forms,建议你把开始时不用的forms移动到Available forms下。然后在需要用到的地方在动态创建。Application.CreateForm(TYourForm, YouForm);
这样应该能是速度快很多的。我也这样用的。
更简单的地方是把program的资源文件打开,剪贴生成窗体的代码到需要的地方。

祝好运!
cooling-cooling at 2007-10-21 > top of Msdn China Tech,Delphi,VCL组件开发及应用...
# 6
學習學習
ding_csdn-英雄%美女 at 2007-10-21 > top of Msdn China Tech,Delphi,VCL组件开发及应用...
# 7
我几乎所有窗口都是動態生成的﹐只有几個如frmMain,frmData等窗口才是靜態的。但不知為什么會成那么大的文件﹐我有另一系統﹐同樣有5M多﹐但是用BDE連接Sqlserver﹐速度就快多了﹐不知是不是跟這個有關﹖
# 8
这个程序的结构规划一定有问题!
# 9
你看看你建立一个ODBC的连接的话,连接需要多长时间,如果时间一样的话,就是你的COMPUTER出问题了啊,哈哈!
# 10
frmData是不是连接数据库了,有没有CONNECNTION
# 11
frmdata的ADOConnection1.Connected:=true;
# 12
我觉得执行文件怎么会这么大的?里面包含了很多bmp?或者avi什么的?
窗口的动态生成是必须的,在开始的时候应该就一两个窗体。。。flash窗体然后登陆窗体,最好把frmmain都在登陆窗体验证后再生成,这样程序一执行就应该比较快的看见登陆窗体了。
alen_fen-Cool at 2007-10-21 > top of Msdn China Tech,Delphi,VCL组件开发及应用...
# 13
资源文件动态加载
大部分窗口都动态生成;
# 14
我也做了一个6。9M的EXE,但运行很好。
首先,你需要一个程序的封面,就是象Delphi启动时的那个东西。
然后在启动时你是不是作了太多的工作?有的工作是不必要在程序启动时做的,
把你的做法说来看看,大家讨论一下
errorcode-errorcode at 2007-10-21 > top of Msdn China Tech,Delphi,VCL组件开发及应用...
# 15
除了主窗口由应用程序在Project文件中创建,其他窗口都要动态创建.
prometheusphinx-白日梦 at 2007-10-21 > top of Msdn China Tech,Delphi,VCL组件开发及应用...
# 16
to prometheusphinx(白日梦) :
是這樣的,但還是很慢.
# 17
启动的时候,把不需要打开的数据访问控件关闭,需要的时候再打开,不需要操作的时候及时关闭。
cfqdream-软艺 at 2007-10-21 > top of Msdn China Tech,Delphi,VCL组件开发及应用...
# 18
我认为你的模块规划有问题。至少应该把大量的数据访问控件分类放在不同的数据模块里,需要的时候再创建。
tata1-tata1 at 2007-10-21 > top of Msdn China Tech,Delphi,VCL组件开发及应用...
# 19
program Mclient;

uses
Forms,
uimage in 'uimage.pas' {fimage},
addimage in 'addimage.pas' {faddimage},
main in 'main.pas' {Fmain},
logno in 'logno.pas' {Flogno},
look in 'look.pas' {flook},
admdel in 'admdel.pas' {fadmdel},
admedit in 'admedit.pas' {fadmedit},
admini in 'admini.pas' {fadmin},
mdata in 'mdata.pas' {fmdata: TDataModule},
GIFImage in '..\Bg&kl cs\gifimage.pas';

{$R *.RES}

begin
Application.Initialize;
try
begin
Application.Title := '我的软件;
Application.CreateForm(Tfmdata, fmdata);
flogno:= Tflogno.Create(Application);
flogno.ShowModal;
if logno.logno_ok then
begin
Application.CreateForm(TFmain, Fmain);
Application.CreateForm(Tfaddimage, faddimage);
Application.CreateForm(Tflook, flook);
Application.CreateForm(Tfadmdel, fadmdel);
Application.CreateForm(Tfadmedit, fadmedit);
Application.CreateForm(Tfadmin, fadmin);
Application.CreateForm(Tfimage, fimage);
end;
Application.Run;
end;
except
begin

application.Terminate;
end;
end;

end.
YANGYUGW-小杨 at 2007-10-21 > top of Msdn China Tech,Delphi,VCL组件开发及应用...