D6开发的C/S三层结构的系统中客户端执行远程插入语句有时死掉

zxcnmv 2006-08-28 08:59:13
D6开发的C/S三层结构的系统中客户端程序执行远程插入语句有时会死掉,也就是一直处于插入状态,造成插入超时,然后死掉了,要关掉重新运行客户端程序才行,请问这如何解决!
...全文
205 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuehaiyang 2006-09-02
  • 打赏
  • 举报
回复
关键要找出出错的原因,真的是通讯断了吗?正常情况下,应该是不会出现这种情况的,你跟踪一下代码。
我认为,是不是死锁的原因,在insert的时候,你在查询分析器用sp_who看看
zxcnmv 2006-09-02
  • 打赏
  • 举报
回复
我这样试过还是不行,估计不是插入不了的问题.
现在是不知道怎么回事客户端会死掉,高手有没有什么详细的方案呀?
cncharles 2006-08-29
  • 打赏
  • 举报
回复
如果一直处于插入状态, 这个问题就比较严重了. 快点打120了

如果想一直处于插入状态, 请用伟哥.

FigoZhu 2006-08-29
  • 打赏
  • 举报
回复
帮顶,接分。
erhan 2006-08-29
  • 打赏
  • 举报
回复
procedure TMainForm.QueryExec(mTempQuery:TADOQuery);
var
mError: boolean;
begin
while 0=0 do
begin
mError := False;
try
mTempQuery.ExecSQL;
except
mError := True;
end;
if mError then
begin
try
mTempQuery.Connection.Connected := False;
mTempQuery.Connection.Connected := True;
except
end;
end
else
break;
end;
end;

添加该过程,将原来的类似语句
AdoQuery1.SQL.Text := 'INSERT INTO ....';
AdoQuery1.ExecSQL;
改为
AdoQuery1.SQL.Text := 'INSERT INTO ....';
QueryExec(AdoQuery1);

插入失败后,会不断重试,直到插入成功。如果不想出现“程序无响应”,请在该过程的相应位置加入Application.ProcessMessages;

2,498

社区成员

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

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