[WebService] Intéractions entre BDD et Application
Bonjour,
Dans le cadre d'un développement pour Windows CE, l'utilisation d'un Web Service s'est de suite imposée. Le souci, c'est que j'ai beau cherché de la documentation (complète j'entends), j'ai du mal à en trouver. La plupart du temps, il s'agit de présenter un cas bien spécifique et on en tire très peu.
Par conséquent, j'avance mais très lentement et il se peut que la méthode que j'emploie soit ainsi faussée....
Je vous montre un petit exemple d'un Web Service que j'ai commencé à développer entre deux sujets.
WebServiceImpl.pas
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| type
TWebService = class(TInvokableClass, IWebService)
private
ADOCon : TADOConnection;
ADOReq : TADOQuery;
public
function getOperateurs(ChaineConnexion : string):ListeOperateur; stdcall;
end;
implementation
function TWebService.getOperateurs(ChaineConnexion, OwnerInit, Societe : string):ListeOperateur; stdcall;
var
Operateur : ListeOperateur;
begin
try
ADOCon := TADOConnection.Create(nil);
ADOCon.LoginPrompt := false;
ADOCon.ConnectionString := ChaineConnexion;
ADOCon.Connected := true;
ADOReq := TADOQuery.Create(nil);
ADOReq.Connection := ADOCon;
with ADOReq do
begin
SQL.Clear;
SQL.Add('SELECT DISTINCT USER_NAME, PASSWORD FROM UTILISATEUR');
try
Open;
if (RecordCount > 0) then
begin
SetLength(Operateur, 0);
while not eof do
begin
SetLength(Operateur, Length(Operateur)+1);
Operateur[Length(Operateur)-1] := TOperateur.Create(FieldByName('USER_NAME').AsString, FieldByName('PASSWORD').AsString);
end;
end;
except
Close;
SQL.Clear;
end;
end;
Result := Operateur;
except
ADOReq.Free;
ADOCon.Free;
end;
end;
initialization
{ les classes invocables doivent être recensées }
InvRegistry.RegisterInvokableClass(TWebService);
end. |
Operateur.pas
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| unit Operateur;
interface
type
TOperateur = Class(TObject)
Username : String;
Password : String;
constructor Create(_Username, _Password : String);
End;
ListeOperateur = Array of TOperateur;
implementation
constructor TOperateur.Create(_Username, _Password : String);
begin
Username := _Username;
Password := _Password;
end;
end. |
Déjà, je ne sais pas si je fais bien les choses... Et en plus, je ne sais absolument pas comment exploiter ce service et c'est un véritable problème... ;)
Si vous avez des infos, des tutos ou des retours, je suis preneur.
Cordialement,