ExecuterSQLe

Exécute une instruction de requête SQL pour l'occurrence de table spécifiée dans un fichier FileMaker Pro et, si une erreur se produit, renvoie ? suivi d'un message d'erreur.

Format 

ExecuterSQLe ( RequêteSQL ; séparateurRubrique ; séparateurLigne { ; arguments... } )

Paramètres 

Consultez la fonction ExecuterSQL.

Résultat 

Texte

Provient de la version 

21.1.1

Description 

ExecuterSQLe est identique à la fonction ExecuterSQL, à ceci près que si une erreur se produit pendant l'analyse ou l'exécution de la requête, ExecuterSQLe renvoie une erreur dans ce format :

? ERROR: FQLxxxx/(line:offset): message

où :

  • xxxx est un code d'erreur numérique du langage de requête FileMaker, qui n'est pas lié aux Codes d'erreur FileMaker.

  • line et offset sont le numéro de ligne et le décalage par rapport au caractère où l'erreur commence dans le paramètre sqlQuery.

  • message est une description de l'erreur.

Une seule erreur est renvoyée à la fois. Si plus d'une erreur est présente, une autre erreur est renvoyée après la résolution de l'erreur actuelle.

Exemple 1 

En commençant par l'exemple 1 pour ExecuterSQL, modifiez le calcul pour utiliser la fonction ExecuterSQLe. Ensuite, pour voir un message d'erreur détaillé, modifiez la requête pour qu'elle fasse référence à une rubrique inexistante nommé Titre :

Copier
ExecuterSQLe ( "SELECT Titre FROM Employés WHERE IDEmployés = 1" ; "" ; "" )

Ceci renvoie :

? ERROR: FQL0007/(1:7): The column named "Titre" does not exist in any table in the column reference's scope.

Exemple 2 

Définit une variable pour le résultat de la requête dans l'exemple 1, puis vérifie si le résultat commence par ?. Si c'est le cas, affiche le reste du résultat (le message d'erreur) et quitte le script.

Copier
 Définir variable [ $resultat ; Valeur: ExecuterSQLe ( "SELECT Titre FROM Employés WHERE IDEmployés = 1" ; "" ; "" ) ]
Si [ Debut ( $resultat ; 1 ) = "?" ]
     Ouvrir boîte dial. person. [ Fin ( $resultat ; Longueur ( $resultat ) - 2 ) ]
     Fin de script [ Résultat de texte: "erreur" ]
Fin de si