Lien d'une variable à une requête Sql d'écriture

Une variable, ayant la propriété Commande, peut être liée au résultat d'une requête Sql d'écriture en choisissant la source Variables Sql. Voir la rubrique Généralités sur les Connexions de Données. Lorsqu'une variable est liée de cette façon, ses propriétés, y compris sa valeur temps réel, peuvent être enregistrées dans une source de données tierce telle que SQL Server de Microsoft. Les requêtes d'écriture peuvent être configurées pour qu'elles soient exécutées périodiquement, lors d'un événement et/ou lorsque la variable change (soit en raison d'une commande ou d'une modification de la valeur).

La configuration se déroule en deux étapes :

  1. Sélectionne la connexion Sql et sa requête Sql d'écriture subordonnée.
  2. Paramètres - Configuration de tous les paramètres que la requête contient. Les paramètres sont utilisés, au lieu du mapping utilisé dans une requête Sql de lecture, pour écrire la valeur de la variable dans la base de données.

Pour plus d'informations et des exemples, voir la rubrique Exemples de mapping de requête Sql d'écriture.

Le mapping de variables à une requête Sql d'écriture est soumis à des contraintes liées à la portée :

  • La portée de la requête Sql d'écriture et la portée de la variable mappée doivent correspondre,

  • Lors de l'utilisation d'une variable pour définir la valeur d'un paramètre d'entrée, des contraintes liées à la portée s'appliquent pour éviter que des données spécifiques à un utilisateur ne soient utilisées comme entrées dans un contexte où le ou les résultats de la requête seront accessibles à d'autres utilisateurs.

Le tableau suivant résume la liste des combinaisons de portées valides :

Portée de la variable Portée de la requête Sql d'écriture Portée des variables utilisées pour définir les paramètres d'entrée
Local Local Local, Partagée
Partagée Partagée Local, Partagée
Session Session Local, Partagée, Session
Contexte client Contexte client Local, Partagée, Session, Contexte client

Configurer la sélection de données

  1. Ouvrir la boîte de dialogue de configuration de la variable et sélectionnez l'onglet Source.
  2. Sélectionnez Variables Sql> comme Source. Variables Sql n'est disponible que si une ou plusieurs connexions Sql ont été configurées. De nouveaux onglets Lecture et Ecriture apparaissent pour la configuration de la sélection de données. Sélectionner l'onglet Ecriture. FerméVoir l'image
  3. Sélectionnez la Connexion Sql et la Requête Sql subordonnée. Tous les paramètres nécessaires pour la requête Sql d'écriture apparaissent dans la liste des paramètres. FerméVoir l'image
  4. Sélectionnez, le cas échéant, les conditions dans lesquelles la requête sera déclenchée. Vous pouvez déclencher la requête lorsqu'une commande est envoyée par un utilisateur pour la variable (Déclencher la requête sur commande de la variable) et/ou lors d'un changement de valeur de la variable (Déclencher la requête sur changement de valeur). Si vous ne sélectionnez aucun de ces éléments, la requête ne sera déclenchée que dans les conditions configurées dans la requête elle-même. Voir l'onglet Exécution dans la rubrique Configuration d'une requête Sql.

Déclencher la requête sur changement de valeur n'est déclenché que si le changement de valeur est la conséquence du traitement d'une requête lue. Le but est de permettre l'exécution d'une requête en écriture à la fin d'une requête en lecture qui a modifié la valeur.

Pour activer le déclenchement d'une requête sur une commande ou une valeur de modification, la propriété correspondante doit également être définie dans la configuration de la requête d'écriture.

Configurer les paramètres

Si un ou plusieurs paramètres sont trouvés dans la requête d'écriture Sql, ils doivent être substitués par une expression. Un paramètre ne peut être remplacé qu'une seule fois. Si la requête est ensuite utilisée dans une autre variable, la substitution de paramètre est préconfigurée et le champ est grisé pour indiquer qu'il est en lecture seule.

Un paramètre défini par une expression peut référencer une propriété de la variable (domaine, attribut étendu, etc.) et utiliser les fonctions et opérateurs du moteur d'expression. Le bouton en haut à gauche de la boîte de dialogue de l'éditeur d'expression affiche une liste des propriétés des variables pouvant être substituées. FerméVoir l'image

Pour plus d'information sur la description des propriétés de variable disponibles, voir la rubrique Lien d'une variable à une requête Sql de lecture.

Les paramètres ne peuvent être définis qu'une seule fois - la première variable dans laquelle une requête est utilisée définira la valeur du paramètre.

La valeur substituée à ?Param01 sera Security. Register01 utilise une requête de lecture contenant ?Param01 configurée pour utiliser le domaine. Quel que soit le domaine de Register02, Security sera utilisée comme valeur pour ?Param01. Register02 utilise la même requête de lecture. Quel que soit le domaine de Register02, Security sera utilisée comme valeur pour ?Param01.

Un paramètre est mappé avec une indirection sur un attribut étendu texte afin qu'il soit défini avec une valeur de variable, l'adéquation de la portée de la variable par rapport à la portée de la requête Sql n'est vérifiée qu'au moment de l'exécution. Elle n'est pas vérifiée au moment de la configuration, ni au démarrage.

Traces

Le bouton Traces permet d'activer les messages de trace de diagnostic. Chaque trace génère des messages spécifiques qui sont enregistrés dans les fichiers de trace et affichés dans la boîte de dialogue Observateur d'événements (F7).

  • Trace 1: Tous les drivers - Général - Active des traces générales relatives à l'activité entre le Gestionnaire de Variables et le driver Variables Sql.
  • Trace 2: Tous les drivers - Détails - Active des traces détaillées relatives à l'activité entre le Gestionnaire de Variables et le driver Variables Sql.
  • Trace 3: Tous les drivers - Performances - Active des traces relatives aux performances du driver Variables Sql.
  • Trace 4: Sql variable driver - Performances - Active des traces relatives aux performances du traitement des résultats des requêtes Sql.