读书人

三层客户端调用服务端函数回来字符

发布时间: 2012-09-14 11:53:44 作者: rapoo

三层,客户端调用服务端函数,返回字符型可以吗?
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;

读书人网 >.NET

热点推荐