IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web & réseau Delphi Discussion :

[WebService] Intéractions entre BDD et Application


Sujet :

Web & réseau Delphi

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 39
    Points : 34
    Points
    34
    Par défaut [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 : 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
    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 : 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
    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,

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Le WebService en SOAP expose un WSDL qui décrit ton service
    En Delphi, le serveur sera en rpc-encoded

    Génération de documents WSDL pour une application de service Web
    Je te conseille de lire avec attention les articles indexés dans Utilisation de services Web

    Ton application WinCE en .NET par exemple doit utiliser le WSDL pour créer de son coté ses remote objects ... ce côté là je ne connais pas du tout en WinCE

    Un tutoriel en D7: Exemple d'utilisation d'un WebService : Google
    L'importateur WSDL te charge des objets version client
    Je te conseille de faire DEUX exe, un pour le serveur et un pour faire des tests

    la partie serveur en D6 : WebServices avec Delphi 6 Entreprise
    Encore un vieux tutoriel qui reste d'actualité !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 39
    Points : 34
    Points
    34
    Par défaut
    Je suis "tombé" sur ce tuto sous Delphi 6 et il enseigne parfaitement les bases qui me permettent déjà d'avancer dans mes devs.

    J'ai récupéré le WSDL et aucun problème pour exploiter le WebService sous .NET.

    Finalement, j'ai décidé de réécrire ce service en C# pour qu'il soit pleinement intégré à mon projet. Et n'ayant rien commencé, c'était l'idéal. Même principe, même concept, donc cela reste aussi simple qu'en Delphi.

    Je passe en "Résolu".

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 25/05/2007, 18h10
  2. Liens entre BDD Access
    Par sufrine dans le forum Access
    Réponses: 1
    Dernier message: 12/06/2006, 13h22
  3. Réponses: 1
    Dernier message: 24/05/2006, 12h10
  4. Réponses: 2
    Dernier message: 13/03/2006, 17h25
  5. Espaces entre BdD et champ de formulaire
    Par Erwan18 dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/10/2005, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo