4D v16

Utiliser la clause ORDER BY

Accueil

 
4D v16
Utiliser la clause ORDER BY

Utiliser la clause ORDER BY  


 

 

Nous souhaitons désormais récupérer tous les films tournés depuis 1960 et, pour chaque film, l'année, le titre, le réalisateur, le support media et le nombre d'entrées. Le résultat devra être trié par année.
Voici le code 4D correspondant à cette requête :

 TABLEAU ENTIER LONG(aNrActors;0)
 TABLEAU ENTIER LONG(aSoldTickets;0)
 TABLEAU ENTIER(aMovieYear;0)
 TABLEAU TEXTE(aTitles;0)
 TABLEAU TEXTE(aDirectors;0)
 TABLEAU TEXTE(aMedias;0)
 C_ENTIER LONG($MovieYear)
 
 REDUIRE SELECTION([MOVIES];0)
 $MovieYear:=1960
 CHERCHER([MOVIES];[MOVIES]Year_of_Movie>=$MovieYear)
 SELECTION VERS TABLEAU([MOVIES]Year_of_Movie;aMovieYear;[MOVIES]Title;aTitles;[MOVIES]Director;aDirectors;
 [MOVIES]Media;aMedias;[MOVIES]Sold_Tickets;aSoldTickets)
 TRIER TABLEAU(aMovieYear;aTitles;aDirectors;aMedias;>)

  • En utilisant du code SQL :

     TABLEAU ENTIER LONG(aNrActors;0)
     TABLEAU ENTIER LONG(aSoldTickets;0)
     TABLEAU ENTIER(aMovieYear;0)
     TABLEAU TEXTE(aTitles;0)
     TABLEAU TEXTE(aDirectors;0)
     TABLEAU TEXTE(aMedias;0)
     C_ENTIER LONG($MovieYear)
     
     REDUIRE SELECTION([MOVIES];0)
     $MovieYear:=1960
     Debut SQL
        SELECT Year_of_Movie, Title, Director, Media, Sold_Tickets
        FROM MOVIES
        WHERE Year_of_Movie >= :$MovieYear
        ORDER BY 1
        INTO :aMovieYear, :aTitles, :aDirectors, :aMedias,  :aSoldTickets;
     Fin SQL
  • En utilisant les commandes SQL génériques :

     C_TEXTE($tQueryTxt)
     TABLEAU ENTIER LONG(aNrActors;0)
     TABLEAU ENTIER LONG(aSoldTickets;0)
     TABLEAU ENTIER(aMovieYear;0)
     TABLEAU TEXTE(aTitles;0)
     TABLEAU TEXTE(aDirectors;0)
     TABLEAU TEXTE(aMedias;0)
     C_ENTIER LONG($MovieYear)
     REDUIRE SELECTION([MOVIES];0)
     $MovieYear:=1960
     SQL LOGIN(SQL_INTERNAL;"";"")
     $tQueryTxt:=""
     $tQueryTxt:=$tQueryTxt+"SELECT Year_of_Movie, Title, Director, Media, Sold_Tickets"
     $tQueryTxt:=$tQueryTxt+" FROM MOVIES"
     $tQueryTxt:=$tQueryTxt+" WHERE Year_of_Movie >= :$MovieYear"
     $tQueryTxt:=$tQueryTxt+" ORDER BY 1"
     SQL EXECUTER($tQueryTxt;aMovieYear;aTitles;aDirectors;aMedias;aSoldTickets)
     SQL CHARGER ENREGISTREMENT(SQL tous les enregistrements)
     SQL LOGOUT
  • En utilisant la commande CHERCHER PAR SQL :

     TABLEAU ENTIER LONG(aNrActors;0)
     TABLEAU ENTIER LONG(aSoldTickets;0)
     TABLEAU ENTIER(aMovieYear;0)
     TABLEAU TEXTE(aTitles;0)
     TABLEAU TEXTE(aDirectors;0)
     TABLEAU TEXTE(aMedias;0)
     C_ENTIER LONG($MovieYear)
     
     REDUIRE SELECTION([MOVIES];0)
     $MovieYear:=1960
     CHERCHER PAR SQL([MOVIES];"Year_of_Movie >= :$MovieYear")
     SELECTION VERS TABLEAU([MOVIES]Year_of_Movie;aMovieYear;[MOVIES]Title;aTitles;[MOVIES]Director;aDirectors;
     [MOVIES]Media;aMedias;[MOVIES]Sold_Tickets;aSoldTickets)
     TRIER TABLEAU(aMovieYear;aTitles;aDirectors;aMedias;>)
  • En utilisant la commande SQL dynamique EXECUTE IMMEDIATE :

     TABLEAU ENTIER LONG(aNrActors;0)
     C_TEXTE($tQueryTxt)
     TABLEAU ENTIER LONG(aSoldTickets;0)
     TABLEAU ENTIER(aMovieYear;0)
     TABLEAU TEXTE(aTitles;0)
     TABLEAU TEXTE(aDirectors;0)
     TABLEAU TEXTE(aMedias;0)
     C_ENTIER LONG($MovieYear)
     
     REDUIRE SELECTION([MOVIES];0)
     $MovieYear:=1960
     $tQueryTxt:=""
     $tQueryTxt:=$tQueryTxt+"SELECT Year_of_Movie, Title, Director, Media, Sold_Tickets"
     $tQueryTxt:=$tQueryTxt+" FROM MOVIES"
     $tQueryTxt:=$tQueryTxt+" WHERE Year_of_Movie >= :$MovieYear"
     $tQueryTxt:=$tQueryTxt+" ORDER BY 1"
     $tQueryTxt:=$tQueryTxt+"  INTO :aMovieYear, :aTitles, :aDirectors, :aMedias, :aSoldTickets;"
     Debut SQL
        EXECUTE IMMEDIATE :$tQueryTxt;
     Fin SQL

    Pour tester tous ces exemples, lancez la base "4D SQL Code Samples" et affichez la boîte de dialogue principale. Choisissez le mode d'interrogation du moteur de 4D et cliquez sur le bouton Clause ORDER BY.

 
PROPRIÉTÉS 

Produit : 4D
Thème : Prise en main
Nom intl. : Using the ORDER BY clause

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D - Référence SQL ( 4D v16)