Comment accéder aux composants d'un webmodule serveur SOAP depuis un client ?
Bonjour,
Sous Delphi 2007
Pour la partie Serveur SOAP :
J'ai créé un WebService via le menu ->nouveau->autre->Services web->Application serveur SOAP. Le web module TWebModule2 a été créé automatiquement avec les composants (HTTPSoapDispatcher1, HTTPSoapPascalInvoker1, WSDLHTMLPublish1)
J'ai créé un web module via le menu ->nouveau->autre->Services web->Module de données serveur SOAP que j'ai nommé WebModule1 et j'y ai placé les composants (SQLConnection1, SQLStoredProc1, DataSetProvider1) en les configurant pour permettre la récupération de données. J'ai ajouté la fonction suivante qui me permettra de modifier l'attribut "Params" de SQLStoredProc1:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| type
IWebModule1 = interface(IAppServerSOAP)
['{14E15867-7355-4CB2-BA0F-2610DC53F043}']
function SetStoredProcParams(const AAppli: WideString; const ADataType: WideString; const AParams: WideString): WideString; stdcall;
end;
TWebModule1 = class(TSoapDataModule, IWebModule1, IAppServerSOAP, IAppServer)
SQLConnection1: TSQLConnection;
SQLStoredProc1: TSQLStoredProc;
DataSetProvider1: TDataSetProvider;
private
public
function SetStoredProcParams(const AAppli: WideString; const ADataType: WideString; const AParams: WideString): WideString; stdcall;
end;
function TWebModule1.SetStoredProcParams(const AAppli: WideString; const ADataType: WideString; const AParams: WideString): WideString;
begin
SQLStoredProc1.Params[0].Value := AAppli;
SQLStoredProc1.Params[1].Value := ADataType;
SQLStoredProc1.Params[2].Value := AParams;
end; |
Pour la partie Client SOAP:
J'ai créé un client "Application Fiche VCL pour win32".
Sur la fiche j'ai déposé et configuré les composants
(SoapConnection1, ClientDataSet1, DataSource1, DBGrid1, DBNavigator1, Button1) avec les attributs suivants:
- SoapConnection.URL =
http://localhost:8081/ProjectServer1...ap/IWebModule1
- ClientDataSet1.RemoteServer = SoapConnection1
- ClientDataSet1.ProviderName = 'DataSetProvider1'
Sur l'événement Button
Code:
1 2 3 4
| procedure TForm1.Button1Click(Sender: TObject);
begin
ClientDataSet1.Active := True;
end; |
J'obtiens bien les données dans la grille DBGrid1
Maintenant, j'aimerais pouvoir accéder à ma fonction SetStoredProcParams depuis le Client afin de changer l'attribut "Params" de SQLStoredProc1 avant d'activer le ClientDataset1.
Question :
Comment accéder à la fonction "SetStoredProcParams " définie dans l'interface serveur IWebModule1 ?
J'ai bien essayé le code suivant :
Code:
1 2 3 4 5 6 7 8 9
| procedure TForm1.Button1Click(Sender: TObject);
var
AWebModule1 : IWebModule1;
begin
SoapConnection1.Connected := True;
if SoapConnection1.GetInterface(IWebModule1,AWebModule1) = True
then AWebModule1.SetStoredProcParams('SOFT_APPLI','ANNEES','43;');
ClientDataSet1.Active := True;
end; |
Mais le résultat de la fonction GetInterface retourne false...
Merci pour ton aide.