程序运行总是过几天会莫名其妙的关闭?(大家快来救救我,UP也有分)解决了我再开帖送分.

yangbiao 2005-01-13 04:05:55
程序运行一两天就会关掉.
我写的这个程序不断访问数据库(读数据).
用到了三个 TIMER 控件.
每天的数据有几千个.光是我的TIMER 控件就要处理 2000个数据.
我用的DBGrid 控件显示数据库表里面的数据.我还用设置了DBGrid 每次只显示10个记录.
10个记录处理完 NEXT 下一条记录...

现在我的最大的难题是 ? 我的程序为什么会关掉.??

是我的TIMER 有问题? 还是 DBGrid 里面积累了太多的数据(一天就有 8000条)每次我只显示了10条

朋友们帮帮我了,十万火急 !!!!!! 小弟跪求有经验的朋友赐教.也谢谢帮我UP 的朋友!
...全文
202 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
jozosoft 2005-05-31
  • 打赏
  • 举报
回复
Up * N
darkliu 2005-05-22
  • 打赏
  • 举报
回复
程序自己关闭,不是死机?

我觉得楼上各位的讨论应该是造成死机的后果,如内存泄漏.....


是不是被别的什么程序给关闭了,例如杀毒...防火墙...
小呆之家 2005-05-19
  • 打赏
  • 举报
回复
我认为你还是开个线程处理的好。用个临界区保护下子。
wlbfeihu 2005-05-19
  • 打赏
  • 举报
回复
表示关注
ffwin 2005-05-19
  • 打赏
  • 举报
回复
我也曾碰到类似错误,如果有提示可以顺着提示找,如果没有提示,则有可能是访问了非法地址,即指针溢出,这样子退出的时候没有提示
zlb_chen 2005-05-19
  • 打赏
  • 举报
回复
UP
datland 2005-05-16
  • 打赏
  • 举报
回复
关注!
caiso 2005-02-22
  • 打赏
  • 举报
回复
顶一下
astrohadn 2005-02-22
  • 打赏
  • 举报
回复
用Try捕捉一下错误
yangbiao 2005-01-13
  • 打赏
  • 举报
回复
TO:moonspot(月亮黑子)
和你那个差不多,我估计是DBGrid 表数据太大造成的.
SQL语句如下:

ADOQuery1.SQL.Text := 'Select * from PASSED_CAR where JGSJ >= :sd and HPHM<>''*'' and CLSD >= ''85'' and CLSD <=''160''';

JGSJ >= :sd 我在想问题会不会是出在这里.
我打算换一种方式去每天刷新数据...
yilesoft 2005-01-13
  • 打赏
  • 举报
回复
路过学习一下,帮你住上提提!
moonspot 2005-01-13
  • 打赏
  • 举报
回复
我也有一个程序用了2个Timer,运行超不过三天,就会出好多错误提示(同样的),因为不在电脑前看着它所以出了满屏这个对话框,估计后来耗尽了资源,最后白屏了。只好重启机。
还有就是瑞星升级完时,我的这个程序就会被杀死掉了。
merkey2002 2005-01-13
  • 打赏
  • 举报
回复
帮顶了
huitouren519 2005-01-13
  • 打赏
  • 举报
回复
up!
cangwu_lee 2005-01-13
  • 打赏
  • 举报
回复
热闹
Kshape 2005-01-13
  • 打赏
  • 举报
回复
这个可能就是因为程序进程间冲突或者操作死循环吧
这样的问题麻烦
难道程序关闭的时候没抛异常吗?
如果有异常
就看看问题主要是什么
再改代码
wyf99 2005-01-13
  • 打赏
  • 举报
回复
UP!
lyguo 2005-01-13
  • 打赏
  • 举报
回复
帮你顶
yangbiao 2005-01-13
  • 打赏
  • 举报
回复
基本上的关键代码全帖出来了...
希望高手或者有经验的朋友...帮帮小弟的大忙......十分感谢!!!!

yangbiao 2005-01-13
  • 打赏
  • 举报
回复
这个是指定日期及设置DBGrid的数目 及设置禁止关闭程序(不清楚是否有用?)
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Text := 'Select * from PASSED_CAR where JGSJ >= :sd and HPHM<>''*'' and CLSD >= ''85'' and CLSD <=''160''';
ADOQuery1.Parameters.ParamValues['sd'] := datetostr(DateTimePicker1.Date);
ADOQuery1.Open;
Timer2.Enabled := True;
end;

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
TStringgrid(DBGrid1).RowCount := 11;
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := False;
end;
加载更多回复(8)

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧