4D v16

Tracer et déboguer le code SQL

Accueil

 
4D v16
Tracer et déboguer le code SQL

Tracer et déboguer le code SQL  


 

 

Dans 4D, il existe deux principales manières de tracer et de déboguer votre code : soit utiliser le Débogueur pour tracer et corriger les erreurs, soit utiliser la commande APPELER SUR ERREUR pour intercepter et traiter les erreurs de façon appropriée.
Ces deux techniques peuvent être mises en oeuvre avec le code SQL.
Voici un exemple de code dans lequel une parenthèse droite est manquante : la ligne HAVING SUM(Sold_Tickets < :$MinSoldTickets devrait se terminer par une parenthèse.

 TABLEAU ENTIER LONG(aSoldTickets;0)
 TABLEAU ENTIER(aMovieYear;0)
 C_ENTIER LONG($MovieYear;$MinSoldTickets;SQL_Error)
 $MovieYear:=1979
 $MinSoldTickets:=10000000
 SQL_Error:=0
 
  ` Installation de la méthode SQL_Error_Handler pour intercepter les erreurs
 APPELER SUR ERREUR("SQL_Error_Handler")
 Debut SQL
    SELECT Year_of_Movie, SUM(Sold_Tickets)
    FROM MOVIES
    WHERE Year_of_Movie >= :$MovieYear
    GROUP BY Year_of_Movie
    HAVING SUM(Sold_Tickets < :$MinSoldTickets
    ORDER BY 1
    INTO :aMovieYear,  :aSoldTickets;
 Fin SQL

Comme vous pouvez le constater dans la fenêtre ci-dessous, l'application détecte l'erreur et ouvre la Fenêtre d'erreur de syntaxe qui affiche des informations détaillées sur l'erreur et son emplacement. Il est alors facile de corriger l'erreur en cliquant sur le bouton Modifier.

Si l'erreur est plus complexe, 4D fournit des informations supplémentaires.

Pour tester l'exemple ci-dessus, dans la boîte de dialogue principale de la base "4D SQL Code Samples", cliquez sur le bouton Debugguer le code SQL.

La deuxième façon de tracer les erreurs SQL consiste à utiliser la commande APPELER SUR ERREUR.
Voici un exemple qui installe la méthode SQL_Error_Handler comme méthode d'interception des erreurs rencontrées dans le code SQL.

 TABLEAU ENTIER LONG(aSoldTickets;0)
 TABLEAU ENTIER(aMovieYear;0)
 C_ENTIER LONG($MovieYear;$MinSoldTickets;SQL_Error)
 $MovieYear:=1979
 $MinSoldTickets:=10000000
 SQL_Error:=0
 
  ` Installation de la méthode SQL_Error_Handler pour intercepter les erreurs
 APPELER SUR ERREUR("SQL_Error_Handler")
 Debut SQL
    SELECT Year_of_Movie, SUM(Sold_Tickets)
    FROM MOVIES
    WHERE Year_of_Movie >= :$MovieYear
    GROUP BY Year_of_Movie
    HAVING SUM(Sold_Tickets < :$MinSoldTickets
    ORDER BY 1
    INTO :aMovieYear,  :aSoldTickets;
 Fin SQL
  ` Désinstallation de la méthode SQL_Error_Handler
 APPELER SUR ERREUR("")
 
 Si(SQL_Error#0)
    ALERTE("SQL Error number: "+Chaine(MySQL_Error))
 Fin de si 

La méthode SQL_Error_Handler contient le code suivant :

  `(P) SQL_Error_Handler
 MySQL_Error:=Error

Pour tester l'exemple ci-dessus, dans la boîte de dialogue principale de la base "4D SQL Code Samples", cliquez sur le bouton Utiliser "Appeler sur erreur".

 
PROPRIÉTÉS 

Produit : 4D
Thème : Prise en main
Nom intl. : SQL code error tracking and debugging

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

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