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

DIDACTITIEL ISAPI AVEC LES COMPOSANTS INTERNET DE DELPHI 5/6/7 enterprise


précédentsommairesuivant

II. Gestion statique des données : TPageproducer

Nous allons voir maintenant comment afficher des données statiquement (sans entrée de l'utilisateur) à partir d'un SBGD.

Imporant pour les ISAPI : pour un accès à votre SGBD par ODBC, vous devez impérativement créer un DNS Système et non utilisateur.

Autre petit conseil : évitez le BDE si possible. Surtout au vu de l'attribution des droits IUSR_VOTRE_MACHINE (c'est le compte utilisateur Internet de base sous IIS). Si vous en avez la possibilité, les composants ADO sont parfaits, ou alors Interbase 6, car compatible Linux et… gratuit ;-)

Tout se passe à nouveau dans le Webmodule. Nous allons y ajouter des composants base de données :

  • un composant TDatabase pour l'accès au SGBD (ici avec les composants ADO) ;
  • un composant TTable pour l'accès aux données ;
  • un composant TPageProducer
Image non disponible

Nous allons insérer dans la page Showname le code HTML. Vous allez ajouter un Tag (ici <#NOM>) où Delphi insérera les données.

Image non disponible

Dans l'éditeur d'action, nous allons rajouter… une action ;-)

Image non disponible

…que nous nommons Showname, dans le dialogue pathInfo. Pour l'affichage des résultats, nous avons deux solutions. Soit mettre le nom de notre page qui recueillera les données sous Producer et aucun codage n'est nécessaire…

Image non disponible

… soit ne rien mettre sous Producer et coder la réponse : voici le code d'appel de l'action ShowName, qui appelle la page du même nom :

 
Sélectionnez
procedure TWebM.WebMShownameAction(Sender: TObject; Request: TWebRequest;
Response: TWebResponse; var Handled: Boolean);
begin
  Response.Content := ShowName.Content;
end;

Lors de l'appel à cette page, la procédure ShowNameHTMLTag est activée et c'est là où nous allons remplacer le tag <#NOM> par les données du SGBD à travers l'événement OnHTMLTag :

Image non disponible
 
Sélectionnez
procedure TWebM.ShowNameHTMLTag(Sender: TObject; Tag: TTag; const TagString: String;
                       TagParams: TStrings; var ReplaceText: String);
Var Data: String;
begin
  Try
  if CompareText(TagString, 'NOM') = 0 then
  begin
    //Ouverture de la base et du fichier
    Try
      Adresses.Connected:=True;
      Except on E:exception do
        Data:=E.Message;
    end;
    Nom.Open;
    Data := '';
    Nom.First;
    while not Nom.Eof do
    begin
      Data := Data + Nom.FieldByName('Nom').AsString+' '+Nom.FieldByName('prenom').AsString;
      //Nous devons ajouter à Data un retour/ligne HTML
      Data:= Data +'<BR>';
      Nom.Next;
    end;
  end;
  Finally
    Adresses.Connected:=False;
    ReplaceText := Data;
  end;
end;

Vous devriez alors, en appelant http://localhost/myisapi.dll/showname avoir une liste de toute votre table.


précédentsommairesuivant

Ce document est issu de https://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.