1. 程式人生 > 實用技巧 >呼叫kbmMW服務端方法經驗一則

呼叫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;