WebService et sérialisation
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.
Code:
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; |
J'ai ensuite utilisé un TList pour créer une liste:
Code:
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; |
Cela ne fonctionne évidemment pas...
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.