Delphi7 Soap连接中间层时,在客户端如何调用Soap中间层相关方法? ( 积分: 10 )

  • 主题发起人 主题发起人 roczhoupeng
  • 开始时间 开始时间
R

roczhoupeng

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手!下午好!
本人目前有一难题不能解决(目前急需解决的问题).
在Delphi7中写一应用程序,其方式为:
1)中间层采用Soap方式连接SQL SERVER2000数据,同时中间层的所有方法及相关属性写在SOAP Server Data Module中.
如方法:Function OpenData(const vSql:WideString; var vXMLData:OleVariant):String; safecall;
begin
try
ADOQuery1.Close ;
ADOQuery1.SQL.Text := vSql ;
ADOQuery1.Open ;

ClientDataSet1.Data := DataSetProvider1.Data ;
vXMLData := ClientDataSet1.XMLData ;
Result := 'OK';
except
Result:='取数失败!';
end;
end;

2)客户端与中间层连接方式:
a)用SOAP的SoapConnection1控件连接,请问,用这种方式连接中间层时如何调用中间层方法?

b)用SOAP的HTTPRIO1控件连接,请问,用这种方式连接中间层时如何调用中间层方法?
 
各位高手!下午好!
本人目前有一难题不能解决(目前急需解决的问题).
在Delphi7中写一应用程序,其方式为:
1)中间层采用Soap方式连接SQL SERVER2000数据,同时中间层的所有方法及相关属性写在SOAP Server Data Module中.
如方法:Function OpenData(const vSql:WideString; var vXMLData:OleVariant):String; safecall;
begin
try
ADOQuery1.Close ;
ADOQuery1.SQL.Text := vSql ;
ADOQuery1.Open ;

ClientDataSet1.Data := DataSetProvider1.Data ;
vXMLData := ClientDataSet1.XMLData ;
Result := 'OK';
except
Result:='取数失败!';
end;
end;

2)客户端与中间层连接方式:
a)用SOAP的SoapConnection1控件连接,请问,用这种方式连接中间层时如何调用中间层方法?

b)用SOAP的HTTPRIO1控件连接,请问,用这种方式连接中间层时如何调用中间层方法?
 
给你一个例子
var
fhxx:string;
begin
inherited;
fhxx:= DataModule1.SocketConnection1.AppServer.EditHuiyuan(yskh,Edi_kh.Text,Edi_Name.Text,Cbb_Xb.Text,Edi_Sfzh.Text,Cbb_Gyh.Text,Edt_Qsh.Text,Cbb_Xm.Text,UserID);
if fhxx<>'' then
begin
Application.MessageBox(pchar(fhxx),'错误提示',16);
Abort;
end;
close;
end;
 
wanghaiou:能不能说详细点?
我用类似方法,如:
var
vxmldata:OleVariant ;
ss:String ;
begin
ss := 'select * from '+trim(RWComboBox1.Text) ;
SoapConnection1.AppServer.OpenData(ss, vxmldata);
ClientDataSet1.XMLData := vxmldata ;
end;

出现'Invalid variant operation'错误? 请问如何处理?
 
你的写法应该没有问题,看得出来,你在这方面还是个新手,建议你在服务器端先做一个简单的服务,然后按照我的方法来调用,数据类型尽量用常用的类型。然后再慢慢的增加服务的难度!
 
后退
顶部