红鱼儿

调用kbmMW服务端方法经验一则

基于kbmMW实作项目,难免要在服务端实现方法供客户端调用,在这里有条重要的经验分享。

假设服务端有个方法,并反回一个字符串。

Procedure TQueryService.ValidUser:string
begin
  ...
  result:='OK';
end;

上面服务端方法返回串OK,表示用户合法。

那客户端我们这样调用:

procedure TUser.ValidateUser(LoginCode, password: string);
var
    r: string;
begin
   ...
    r := c.Request(...);
    if (r = 'OK') then
    begin
         //用户合法
    end
    else
      ...
end;

正常情况下没有问题,应用会按预期执行。而一但因网路或其他问题,造成客户端请求不能正常执行,问题就来了:

c.Request返回的是个Variant,当不能正常执行时,会返回Variant类型的NULL,将之转换为一个string,会产生异常。

procedure TUser.ValidateUser(LoginCode, password: string);
var
    r: variant;
begin
   ...
    r := c.Request(...);
    if ((not VarIsNull(r)) and (r = 'OK')) then
    begin
         //用户合法
    end
    else
      ...
end;

 

posted on 2020-08-29 15:53  红鱼儿  阅读(412)  评论(0编辑  收藏  举报