Bonjour,
Une méthode d'un WebService renvoie le résultat d'une requête qui contiendra plusieurs lignes.
J'ai créé une classe qui hérite de TRemotable.
J'ai ensuite utilisé un TList pour créer une liste:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 TStock = class(TRemotable) private FRegion: AnsiString; FGroupe: AnsiString; FAgence: AnsiString; published property Region: AnsiString read FRegion write FRegion; property Groupe: AnsiString read FGroupe write FGroupe; property Agence: AnsiString read FAgence write FAgence; end;
Cela ne fonctionne évidemment pas...
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
23
24
25
26
27
28
29
30 function TestWS.StockMini(): TList; stdcall; var session : TOraSession; sqlQuery : TOraQuery; stock : TStockIdeal; liste : TList; begin liste := TList.Create; session := TOraSession.Create(nil); session.ConnectString := 'dev/dev@test'; sqlQuery := TOraQuery.Create(nil); sqlQuery.Session := session; sqlQuery.SQL.Text := 'SELECT REGION, GROUPE, AGENCE FROM STKMINI'; sqlQuery.Open; if sqlQuery.Active then begin sqlQuery.First; while not sqlQuery.EOF do begin stock := TStockIdeal.Create; stock.Region := sqlQuery.Fields[0].AsString; stock.Groupe := sqlQuery.Fields[1].AsString; stock.Agence := sqlQuery.Fields[2].AsString; liste.Add(stock); sqlQuery.Next; end; end; sqlQuery.Close; sqlQuery.Free; Result := liste; end;
Je suppose qu'il faut sérialiser cette liste pour la renvoyer. Je ne sais pas comment gérer la sérialisation et le typage en sortie du WS.
Si quelqu'un pouvait me donner un début de réponse, ce serait sympa.
Partager