DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: KfnqDuxw
今日帖子: 26
在线用户: 31
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 mailyjj (MailYjj) ★☆☆☆☆ -
普通会员
2003/11/24 17:30:43
标题:
请教关点DELPHI+ADO起动速度慢的解决方法??? 浏览:2351
加入我的收藏
楼主: 我编了一个程序,但其起动时先连接SQL数据库,所以起动十分慢,请教各个高手,

有没办法可先让界面先起动后,再连接数据库呢????在线等!
----------------------------------------------
-
作者:
男 mailyjj (MailYjj) ★☆☆☆☆ -
普通会员
2003/11/24 17:32:14
1楼: 我编了一个程序,但其起动时先连接SQL数据库,所以起动十分慢,请教各个高手,

有没办法可先让界面先起动后,再连接数据库呢????在等! 

----------------------------------------------
-
作者:
男 defcjjava (编,往死里编) ★☆☆☆☆ -
普通会员
2003/11/24 18:25:15
2楼: 做成线程啊.连接数据库的操作放在线程里做.
----------------------------------------------
-
作者:
男 lcjclj (lcj) ★☆☆☆☆ -
盒子活跃会员
2003/11/25 7:51:57
3楼: 可以,ADO连接时你可以选择异步连接方式,也就是你所说的先启动画面然后连接,连接完后有一事件叫:OnAfterConnect可以通知你已经和数据库连接!
----------------------------------------------
-
作者:
男 mailyjj (MailYjj) ★☆☆☆☆ -
普通会员
2003/11/25 8:04:37
4楼: 3楼的兄弟可否说的再具体一此,我是初学都 ,有实例更好???
----------------------------------------------
-
作者:
男 skertone (奇奇怪) ★☆☆☆☆ -
盒子活跃会员
2003/11/25 8:20:57
5楼: 放一ApplicationEvents 组件(不放也可)

procedure TForm1.ApplicationEvents1Idle(Sender: TObject;
  var Done: Boolean);
begin

  //在这里定数据连接代码
end;

这样就保证程序界面启动完毕无事可做时 再连接数据据

当然在哪里应该保证已连接数据库就不再干傻事了


----------------------------------------------
按此在新窗口浏览图片 按此在新窗口浏览图片 按此在新窗口浏览图片
作者:
男 mailyjj (MailYjj) ★☆☆☆☆ -
普通会员
2003/11/25 9:03:00
6楼: 5楼的兄弟,这个组件在哪儿能找到呀?
----------------------------------------------
-
作者:
男 mailyjj (MailYjj) ★☆☆☆☆ -
普通会员
2003/11/25 9:11:06
7楼: 5楼的兄弟我找到这个组件了,谢谢你!

但是在编译的时候出现非法操作???

procedure TForm1.ApplicationEvents1Idle(Sender: TObject;
  var Done: Boolean);
begin
  datamodule1.ADOConnection1.Connected:=true;
end;

不知道是哪儿出错了,现想向你请教一二???



----------------------------------------------
-
作者:
男 kingking (kk) ★☆☆☆☆ -
普通会员
2003/11/25 12:26:19
8楼: 建议楼主做这么个试验再看使用这个方法有意义不:
  i:=0;

procedure TForm1.ApplicationEvents1Idle(Sender: TObject;
  var Done: Boolean);
begin
  edit1.Text := inttostr(i);
  i:=i+1;
end;

OnIdle的意思是在程序空闲时触发,如果程序一空闲就来触发连接你的数据库是不是太多余了一点呢?而且如果某个时候你想断开数据库连接,那这个事件是不会让你那么轻松就搞定的。
----------------------------------------------
-
作者:
男 mailyjj (MailYjj) ★☆☆☆☆ -
普通会员
2003/11/25 14:06:35
9楼: 那楼上的兄弟如何能实现DELPHI+ADO起动速度慢的解决方法????
----------------------------------------------
-
作者:
男 skertone (奇奇怪) ★☆☆☆☆ -
盒子活跃会员
2003/11/25 15:16:42
10楼: 1.可以通过指定全局变量来记录有无联连成功

2.动态使用
OnCreate:
  Application.OnIdle := MyProcedure;

procedure TForm1.MyProcedure(Sender: TObject;var Done: Boolean);
begin
  //Connection DataBase........

   Application.OnIdle := nil;  //再也不玩了
end;


----------------------------------------------
按此在新窗口浏览图片 按此在新窗口浏览图片 按此在新窗口浏览图片
作者:
男 mailyjj (MailYjj) ★☆☆☆☆ -
普通会员
2003/11/25 15:41:56
11楼: 楼上的诸们史弟们,是这样子的呀?

小弟有一个程序其中主界面没有用到ADO控件,但是每次起动主界面时都先去链接数

据库,所以每次起动时主界面都是等链接上数据库后才能起动起来,所以我想请教

一种方法,能否先起动不连接SQL的主程序界面后,显示完主界面后才连接数据库。

用什么方法可以做到,具体步骤最好!
----------------------------------------------
-
作者:
女 wu_xiaowei (柠檬树) ★☆☆☆☆ -
盒子活跃会员
2003/11/25 16:18:21
12楼: 可以先连接数据库,在程序启动之后在需要数据的时候在去active或open adotable,应该速度不会很慢吧,不知道是不是这样。
----------------------------------------------
delphi盒子好
作者:
男 skertone (奇奇怪) ★☆☆☆☆ -
盒子活跃会员
2003/11/25 17:13:48
13楼: 主界面启动完成 

就是 OnIdel !!!!
----------------------------------------------
按此在新窗口浏览图片 按此在新窗口浏览图片 按此在新窗口浏览图片
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行39.0625毫秒 RSS