如何捕捉服务器端OnDataRequest事件的异常返回客户端? ( 积分: 50 )

  • 主题发起人 主题发起人 MingWord
  • 开始时间 开始时间
M

MingWord

Unregistered / Unconfirmed
GUEST, unregistred user!
如何捕捉服务器端OnDataRequest事件的异常返回客户端?
 
帮你顶,接个分
 
在服务器端的异常处理代码中获取异常信息,返回到客户端,客户端显示错误消息。
 
to 地质灾害:你和我想的一样,但是怎么实现呢?
 
先看看方法或事件定义:
type TDataRequestEvent = function(Sender: TObject;
Input : OleVariant) : OleVariant of object;
TDataSetProvider的OnDataRequest属性被定义成TDataRequestEvent.
TClientDataSet的方法定义为:
function DataRequest(Data: OleVariant): OleVariant;
virtual;
我们在TDataSetProvider的OnDataRequest事件中编写代码如下:
function TRDM.dspDataRequest(Sender: TObject;
Input : OleVariant):OleVariant;
begin
Result:=VarArrayCreate([0,1],varVariant);
Result[0]:=0;
//0 means no exception
try
//Add your code here
except
on E:Exceptiondo
begin
Result[0]:=-1;//-1 indicate an exception occurred
Result[1]:=E.Message;//return the exception message
end;
end;
end;

客户端
procedure TClientDM.cdsGetCustomData(Data: OleVariant): OleVariant;
begin
Result:=cds.DataRequest(Data);
if not VarIsArray(Result) then
raise Exception.Create('Invalid data');
if Result[0]=-1 then
begin
MessageBox(0,PAnsiChar(Result[1]),'Server Error',MB_OK+MB_ERROR);
VarClear(Result);
end
else

Result:=Result[1];
end;
 
接受答案了.
 
后退
顶部