首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

三层,客户端调用服务端函数,回来字符型可以吗

2012-09-14 
三层,客户端调用服务端函数,返回字符型可以吗?function TsjkServer.login(const username, password: Wide

三层,客户端调用服务端函数,返回字符型可以吗?
function TsjkServer.login(const username, password: WideString): integer;
var
  ret:string;
  qm: WideString;
begin
  with ADOStoredProc1 do
  begin
  ProcedureName := 'User_Login2';
  Close;
  Parameters.Clear;
  Parameters.Refresh;
  Parameters.ParamByName('@bh').Value := username;
  parameters.ParamByName('@password').Value := password;
  parameters.ParamByName('@record').Value := '1';
  parameters.ParamByName('@qm').Value := '';
  ExecProc;
  ret:= Parameters.ParamByName('@record').Value;
  qm:=Parameters.ParamByName('@qm').Value;
   
  if ret='1' then
  Result := 1
  else
  Result := 0;  
  end;
end;

这个只能返回integer,
客户端调用:result:=DCOMConnection1.AppServer.login1(Edit1.Text,Edit2.Text);
那如果我要让客户端得到 qm:=Parameters.ParamByName('@qm').Value; 这个字符型的值怎么做呢?

[解决办法]
没太明白啊,你的这个函数定义的就是返回一个integer,你现在又要求返回字符串?何意?这个函数不能改吗?

[解决办法]
建议:
1、使用SQL语句返回数值。
2、函数可以返回字符。同时方法的变量参数也可返回字符。这些,需要在服务器中定义。客户端调用。
给个例子:
procedure GetUsesID(out UsesRegName: WideString; out RegDate: WideString); safecall;

procedure TTServer.GetUsesID(out UsesRegName, RegDate: WideString);
begin
UsesRegName:=StartFrm.Edit4.Text;
RegDate:=StartFrm.Label6.Caption;
end;

热点排行