Aller au contenu principal
Version: Next

SQL EXECUTE SCRIPT

SQL EXECUTE SCRIPT ( cheminScript ; actionErreur {; nomAttribut ; valAttribut} {; nomAttribut2 ; valAttribut2 ; ... ; nomAttributN ; valAttributN} )

ParamètreTypeDescription
cheminScriptTextChemin d'accès complet du fichier contenant le script SQL à exécuter
actionErreurIntegerAction à effectuer en cas d’erreur durant l’exécution du script
nomAttributTextNom d’attribut à utiliser
valAttributTextValeur de l’attribut

Cette commande n'est pas thread-safe, elle ne peut pas être utilisée dans du code préemptif.

Description

La commande SQL EXECUTE SCRIPT vous permet d’exécuter une suite d’instructions SQL placées dans le fichier de script désigné par cheminScript. Cette commande ne peut être exécutée que sur un poste local (4D local ou procédure stockée sur 4D Server). Elle fonctionne avec la base courante (base interne ou base externe).

Note : Cette commande ne peut pas être utilisée avec une connexion externe ouverte directement ou via ODBC.

Passez dans le paramètre cheminScript le chemin d’accès complet du fichier texte contenant les instructions SQL à exécuter. Le chemin d’accès doit être exprimé à l’aide de syntaxe du système courant. Si vous passez une chaîne vide ("") dans cheminScript, une boîte de dialogue standard d’ouverture de documents s’affiche, permettant à l’utilisateur de sélectionner le fichier de script à exécuter.

Note : Les commandes SQL EXPORT DATABASE et SQL EXPORT SELECTION génèrent automatiquement ce fichier de script.

Le paramètre actionErreur vous permet de paramétrer le fonctionnement de la commande lorsqu’elle rencontre une erreur au cours de l’exécution du script. Vous pouvez passer l’une des trois constantes ci-dessous, placées dans le thème SQL :

ConstanteTypeValeurComment
SQL On error abortEntier long1En cas d’erreur, 4D stoppe immédiatement l’exécution du script.
SQL On error confirmEntier long2En cas d’erreur, 4D affiche une boîte de dialogue détaillant l’erreur et permettant à l’utilisateur d’interrompre ou de poursuivre l’exécution du script.
SQL On error continueEntier long3En cas d’erreur, 4D l’ignore et poursuit l’exécution du script.

Les paramètres nomAttribut et valAttribut doivent être passés par paires. Ces paramètres sont destinés à permettre de définir des attributs spécifiques pour l’exécution du script. Dans la version actuelle de 4D, un seul attribut peut être passé dans nomAttribut, disponible via la constante suivante, placée dans le thème SQL :

ConstanteTypeValeurComment
SQL use access rightsChaîneSQL_Use_Access_RightsPermet de restreindre les droits d’accès à appliquer lors de l’exécution des commandes SQL du script. Lorsque vous utilisez cet attribut, vous devez passer 0 ou 1 dans valAttribut :
valAttribut = 1 : 4D utilise les droits d’accès de l’utilisateur 4D courant. valAttribut = 0 (ou attribut non défini) : 4D ne restreint pas les accès, les droits du Super_Utilisateur sont utilisés.

Si le fichier d’enregistrement des requêtes de 4D est activé (via les sélecteurs 28 ou 45 de la commande SET DATABASE PARAMETER), chaque commande SQL exécutée génèrera une entrée avec les informations suivantes :

  • Type de commande SQL
  • Nombre d’enregistrements affectés par la commande
  • Durée d’exécution de la commande
  • Pour chaque erreur rencontrée :
    • le code d’erreur
    • le texte de l’erreur s’il est disponible

Si le script est correctement exécuté (aucune erreur rencontrée), la variable système OK prend la valeur 1. En cas d’erreur, la variable système OK prend ou non la valeur 0 en fonction du paramètre actionErreur :

  • Si actionErreur vaut SQL On error abort (valeur 1), OK prend la valeur 0.
  • Si actionErreur vaut SQL On error confirm (valeur 2), la variable OK prend la valeur 0 si l’utilisateur choisit de stopper l’opération et 1 s’il choisit de la poursuivre.
  • Si actionErreur vaut SQL On error continue (valeur 3), la variable OK vaut toujours 1.

Note : Si vous utilisez cette commande pour exécuter des actions consommatrices de mémoire telles que l’importation massive de données, vous pouvez envisager de faire appel à la nouvelle commande SQL ALTER DATABASE afin de désactiver temporairement des options SQL.