要跳楼要跳楼了!总是时不时“未指定的错误”(ADO+ACCESS)

realside 2015-05-06 09:34:11
这段代码是放在线程中执行的,它不是一运行就报,而是过几十下或100下报,根本找不到头绪错在哪,我程序就是定时(每分钟)更新一条数据,数据格式类型完全一样,只是数字有变化(但也在长度允许范围内),已经好几周了解决不了,求大大们给看看:
procedure TCAL_DIFF.Execute;
var i,j:integer;
c,c1:TCODE;
s,sql:string;
adocmd:TADOCommand;
begin
TGetDif.Suspend;


adocmd:=TADOCommand.Create(nil);
adocmd.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=data.mdb;Persist Security Info=False';
...

//组装SQL存数据库
if c1.Code<>'' then begin
sql:='update realtime set code="' + c.Code +'",'+
'[text]="' + c.Text +'",' +
'price=' + currtostr(c.Price-c1.Price) + ','+
'vol=' + IntToStr(c.vol-c1.vol ) + ',' +
'amt=' + currtostr(c.amt-c1.amt ) + ',' +
'times=' + IntToStr(tms) +',' +
'upddt="'+ DateTimeToStr(now)+'" ' +
'where code="' + c.Code + '"';
adoCmd.CommandText:=sql;
adoCmd.Execute;
end;
end;

except on e : exception do
begin //这里在有时多少次数之后就抛出异常“未指定的错误”!!!!!!
MAINFRM.mmo.Lines.Add('[SYS-ERR] Thread() MSG:'+e.Message);
MAINFRM.mmo.Lines.Add('[SYS-ERR] Thread() DUMP:'+ sql); //这里的SQL看DUMP是正确无误,能执行的
inc(errs);
end;
end;
...
FreeAndNil(adocmd);
Execute;


end;
...全文
386 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunyesy 2015-05-08
  • 打赏
  • 举报
回复
引用 7 楼 wr960204 的回复:
在线程中访问主线程也就是界面的元素是不安全的,会不定时报错
正解!
武稀松 2015-05-08
  • 打赏
  • 举报
回复
在线程中访问主线程也就是界面的元素是不安全的,会不定时报错
武稀松 2015-05-08
  • 打赏
  • 举报
回复
在线程中访问主线程也就是界面的元素是不安全的,会不定时报错
yct0605 2015-05-07
  • 打赏
  • 举报
回复
4.将线程中的执行过程写在主程序中,每次定时调用。
yct0605 2015-05-07
  • 打赏
  • 举报
回复
1.最好把线程里面的SQL操作都记录下来,如果发生异常,比较正常和异常有无区别。 2.adocmd:=TADOCommand.Create(nil);每次线程创建和释放,是否可以考虑直接使用实例,不要每次都创建 3.换成SQL数据库测试看,是不是access数据库的自身问题。
realside 2015-05-07
  • 打赏
  • 举报
回复
引用 4 楼 yct0605 的回复:
4.将线程中的执行过程写在主程序中,每次定时调用。
2.试过,线程本身就会报错,特地改成动态创建的 4。主程序也有处理,每分钟收集一次数据,如果放在主程序中不能并行处理,时间就紧张了,必须并行处理。
lyhoo163 2015-05-07
  • 打赏
  • 举报
回复
使用线程,当线程未执行完毕,同时打开若干线程,造成内存占用过大,而死结。
天行归来 2015-05-06
  • 打赏
  • 举报
回复
暂看不出来问题出在哪里,不过你子线程和主线程没有同步也是个大问题。 MAINFRM.mmo.Lines.Add('[SYS-ERR] Thread() MSG:'+e.Message); mainfrm.mmo是属于主线程的对象,需要同步或者可以用消息传递或者用锁等机制,或许是这个导致?

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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