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 SetStoredProcParams qui me permettra de modifier l'attribut "Params" de SQLStoredProc1:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
J'obtiens bien les données dans la grille DBGrid1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 procedure TForm1.Button1Click(Sender: TObject); begin ClientDataSet1.Active := True; end;
Maintenant, j'aimerais pouvoir accéder à la fonction SetStoredProcParams depuis le Client afin de changer l'attribut "Params" du SQLStoredProc1 avant d'activer le ClientDataset1.
Question :
Comment accéder aux fonctions de l'interface serveur IWebModule1 ?
J'ai bien essayé le code suivant :
Mais le résultat de la fonction GetInterface retourne false...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Merci pour ton aide.
Partager