C
cypl
Unregistered / Unconfirmed
GUEST, unregistred user!
正在做个三层结构,在应用服务器端加了个方法,有一个输入参数,一个输出参数,
在客户端调用,赋给输入参数,接受输出参数,但是运行后发现第一次输入了参数,
输出的正常,但第二次输入、第三次、第n 次,输出的结果和第一次一样,没变化,
最后发现每次要把连接服务器的 dcomconnection 关闭在打开,然后就正常了!
----服务器端----------------------------------------------
procedure Ttinet.getcl(const cphm: WideString;
out clbh: OleVariant);
var
s:string;
begin
s:='select * from cl where cphm='+''''+cphm+'''';
query.close;
query.sql.add(s);
query.open;
if query.IsEmpty then
clbh:='没有此编号'
else
clbh:=query['clbh'];
end;
-----客户端-------------------------------------------------
var
bhlevariant;
begin
dm.dcomconnection1.Close;// 用 dcom 连接的关闭
dm.dcomconnection1.Open;// 然后在打开
dm.dcomconnection1.AppServer.getcl(edit1.text,bh);//输入参数
edit2.text:=bh;//取输出参数
---------------------------------------------------------
请教各位为什么要把 dcomconnection 关闭、打开呢?这样正常吗?你们都怎么做的?
在客户端调用,赋给输入参数,接受输出参数,但是运行后发现第一次输入了参数,
输出的正常,但第二次输入、第三次、第n 次,输出的结果和第一次一样,没变化,
最后发现每次要把连接服务器的 dcomconnection 关闭在打开,然后就正常了!
----服务器端----------------------------------------------
procedure Ttinet.getcl(const cphm: WideString;
out clbh: OleVariant);
var
s:string;
begin
s:='select * from cl where cphm='+''''+cphm+'''';
query.close;
query.sql.add(s);
query.open;
if query.IsEmpty then
clbh:='没有此编号'
else
clbh:=query['clbh'];
end;
-----客户端-------------------------------------------------
var
bhlevariant;
begin
dm.dcomconnection1.Close;// 用 dcom 连接的关闭
dm.dcomconnection1.Open;// 然后在打开
dm.dcomconnection1.AppServer.getcl(edit1.text,bh);//输入参数
edit2.text:=bh;//取输出参数
---------------------------------------------------------
请教各位为什么要把 dcomconnection 关闭、打开呢?这样正常吗?你们都怎么做的?