三层数据库中客户端如何调用应用服务器的自定义方法?急!(300分)

  • 主题发起人 主题发起人 madm
  • 开始时间 开始时间
M

madm

Unregistered / Unconfirmed
GUEST, unregistred user!
客户端与应用服务器通过SocketConnection控件连接,在应用层服务器中的TypeLib自己写了一些方法和函数。如何在客户端调用它们?
 
这么多分没人要!
DMHgSoftClient.SktConnection.AppServer.<函数或过程名>
 
socketcounection.appserver.方法名
用socketcounection连接服务端要运行ScktSrvr.exe(DELPHI自带),才能连上
 
SocketConnection1.AppServer.GetServerData
GetServerData是服务器上定义的函数或者方法。
 
不行,调用不了。
DMHgSoftClient这个是数据模块的名称?
 
上面的回答都对,就是这样调用啊,这是一个好简单的问题
 
客户端写入SocketConnection1.AppServer.后,没有出现可选择的方法或函数
如果用ClientDataSet.AppServer.就会出现应用服务器非我自己定义的方法或函数。
 
怎么没人回应阿,是不是问题表达不清阿,是这样的:
我在应用服务器的Type Library的一个接口中定义了一些方法(是用delphi7.0),如:
Send(const str: WideString)然后我编写实现它的代码如下:
procedure TMyServer.Send(const str: WideString);
begin
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select * from '+Trim(Str));
IBQuery1.Prepare;
IBQuery1.Open;
end;
我就想问在客户端中怎么调用它,按楼上所说的方法应该是:在客户端用SocketConnection组件连接服务器,然后用以下调用方式
SocketConnection1.AppServer.Send(...),是不是阿,但是我试了发现不行,用ClientDataSet组件代替SocketConnection也不行,是不是要在客户端引用什么单元或类型库之类的东西阿?
 
SocketConnection1.AppServer.Send(...);
有什么提示信息?
 
晕哦`~Socket不见好用呀。。。没用过
 
SocketConnection1.AppServer.Send(...)中的Send(...)不能自动选择,只能自己打出来,如果能调用的话应该在输入圆点后会出现应用服务器中自带或自己添加的方法,但我试了什么都没有出现,这怎么解决阿????
 
先在TYPE LIBRARY中定义好函数,然后客户断连上后用SocketConnection1.AppServer.函数名(参数表)就可以调用
 
晕,不会自动选择不代表不能调用的吧,
 
很感谢楼上的兄弟,用以上的方法是可以的,可是当我在客户端传送的实参是中文字符时就会出错,有哪位高手可以分析一下吗?
 
调用存储过程的写法:
var
revalue:OleVariant;
begin
with DataModule1do
begin
if not SocketConnection1.Connected then
SocketConnection1.Connected:=true;
SocketConnection1.AppServer.exemyproc('PKG_QUERY.TTT','fieldname'+char(127)+Edit1.Text);
ClientDataSet3.Close;
ClientDataSet3.Open;
Edit1.Text:=SocketConnection1.AppServer.funexe('Evll','express'+char(127)+'sum(je)'+char(127)+'name'+char(127)+'cl_ffk'+char(127)+'numbs'+char(127)+'100',ftbcd);
ShowMessage('完成');
end;
end;
 
客户端调用时先转换为WideString试试: SocketConnection1.AppServer.Send(WideString(...));
 
ws : wideString;
...
SocketConnection1.AppServer.Send(ws);
 
后退
顶部