在检测到数据库连接异常后,如何让TDataSetProvider不继续执行客户端发出查询请求???(100分)

  • 主题发起人 主题发起人 rrding
  • 开始时间 开始时间
R

rrding

Unregistered / Unconfirmed
GUEST, unregistred user!
我用midas做了一个三层结构,在应用服务器的TDataSetProvider.OnBeforeRecords事件中我增加了这么一段:
qryCheck.Close;
qryCheck.SQL.Text:='select getdate() ';
try
qryCheck.Open;
qryCheck.Close;
except
//异常产生
end;
问题出来了,如果产生了异常,那么应用服务器就没有必要继续执行客户端的请求了,怎么终止响应客户端的请求,直到数据库连接回复呢?
 
if 全局變量=true then
exit;
qryCheck.Close;
qryCheck.SQL.Text:='select getdate() ';
try
qryCheck.Open;
qryCheck.Close;
except
//异常产生
exit;
全局變量:=true;
end;
 
011101,我并不是想退出这个函数,而是不想接着不在该函数内的操作
跟踪TDatasetProvider可以发现,在响应完TDataSetProvider.OnBeforeRecords的事件后,TdatasetProvider会接着执行TDataSetProvider.InternalGetRecords函数,在这个函数中会执行DataSet的open....操作
 
你認為加個全局變量不能解決嗎?
只不過是個笨辦法而已.
 
我也考虑过加全局变量,但是我无法在TDataSetProvider.InternalGetRecords中这么一条判断语句,还有其他地方可以加这个判断吗?是不是TDataSetProvider有这么一个变量可以用来判断?
 
没有人知道吗?
在三层结构中,怎样让应用服务器接收到客户端发出来的查询请求语句,可是却不执行这条查询
 
客户端执行Tclientdataset.ApplyUpdate()的时候,服务端的TDataSetProvider的OnBeforeUpdate中可以设置Applied:=True,来阻止服务端继续UPdate操作
但是客户端执行Tclientdataset.Open的时候,却没有一个参数什么的可以阻止服务端执行open操作,郁闷ing.......
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部