Interroger la base de données

L'activité Interroger la base de données envoie une requête SQL à une base de données, puis fait une boucle sur les résultats. Le SQL doit être spécifié à l'aide d'une expression. À chaque itération de la boucle de résultats, les valeurs de la ligne actuelle dans l'ensemble de résultats peuvent être affectées à des variables.

  • L'éditeur SQL n'affiche que vingt résultats sur un ensemble de résultats.
  • La requête SQL est exécutée au sein d'une transaction individuelle, une pour chaque étape. Il n'est pas possible de laisser les transactions s'étendre sur plusieurs appels consécutifs aux activités Interroger la base de données et/ou Exécuter SQL.
  • L'appel de procédures stockées n'est pas pris en charge dans l'étape Interroger la base de données.

Propriétés

L'activité Interroger la base de données peut être configurée à l'aide des propriétés suivantes :

Base de données

Choisissez la base de données à laquelle cette activité doit envoyer sa requête en utilisant la liste déroulante des bases de données disponibles pour Design Studio.

Requête SQL

Ce champ doit contenir une requête SQL valide sous la forme d'une expression. La valeur de cette expression est envoyée à la base de données choisie. La boîte de dialogue contextuelle « Modifier » permet de tester la requête SQL, en affichant un échantillon du résultat.

Mappage des variables

Spécifiez le mappage des colonnes de résultats sur les variables. Cliquez sur le signe plus pour ajouter un nouveau mappage et sur le signe moins pour en supprimer un existant. Un mappage se compose d'un nom de colonne et d'un nom de variable. Le nom de la colonne doit correspondre au nom d'une colonne renvoyée par la requête SQL et le nom de la variable est choisi dans une liste de variables existantes. Notez que le type de la colonne doit correspondre au type de la variable choisie. Dans le cas contraire, une erreur peut être générée lors de l'exécution. Autrement dit, essayer de stocker une colonne de texte dans une variable de nombre entier provoquera une erreur.

Récupérer pendant la boucle

Si cette option est activée, les lignes de résultats sont extraites de la base de données uniquement lorsqu'elles sont nécessaires à la boucle, itération par itération. Voir la remarque ci-dessous sur l'exécution.

Première ligne en mode Conception

Utilisé uniquement en mode Conception dans Design Studio, il s'agit du numéro de la première itération ou de la première ligne de résultats de la requête qui sera accessible (à partir de 1). Voir la remarque ci-dessous sur l'exécution.

Lignes à utiliser en mode Conception

Utilisé uniquement en mode Conception dans Design Studio, cette option spécifie le nombre maximal de lignes de résultats à rendre disponibles pour l'itération. Voir la remarque ci-dessous sur l'exécution.

Remarque : Selon que le paramètre Récupérer pendant la boucle est désactivé ou activé, la récupération des lignes de résultats s'effectue de deux manières différentes :

  • Désactivé : Les lignes de résultats sont toutes récupérées et enregistrées en mémoire avant l'exécution de la première itération. Ainsi, la connexion à la base de données sera réservée pour la durée la plus courte possible et les résultats ne seront pas affectés par les étapes faisant partie de la boucle (par exemple, les étapes Stocker dans la base de données). En revanche, la mémoire disponible limite le nombre de lignes de résultats pouvant être gérées sans erreur. (C'était la seule option disponible jusqu'à la version 8.3).
  • Activé : Les lignes de résultats sont extraites de la base de données une par une, car elles sont nécessaires pour exécuter chaque itération de la boucle. Ainsi, l'étape sera capable de gérer un très grand nombre de lignes de résultats mais maintiendra la connexion à la base de données ouverte jusqu'à ce que toutes les itérations de la boucle soient terminées. Par conséquent, les résultats peuvent être affectés si vous apportez des modifications aux tables de base de données référencées par la requête SQL pendant l'exécution de la boucle. Toutefois, de nombreux facteurs agissent ensemble pour déterminer si les changements seront effectivement visibles dans une situation particulière.

En mode Débogage dans Design Studio, la récupération pendant une boucle implique que la connexion à la base de données sera maintenue ouverte pendant que l'exécution est arrêtée à un point d'arrêt ou pendant une étape unique. Si la base de données a un délai d'expiration pour les connexions inactives, vous pouvez recevoir une erreur de la base de données lorsque vous poursuivez l'exécution du robot après une longue pause.

En mode Conception dans Design Studio, les lignes de résultats seront toujours récupérées avant le lancement de la boucle et, par conséquent, le paramètre Récupérer pendant la boucle est effectivement désactivé. Cette fonction permet de basculer entre différentes itérations de manière interactive. Afin de limiter la quantité de mémoire utilisée pour ce faire, la première ligne en mode Conception et les lignes à utiliser en mode Conception spécifient ensemble un sous-ensemble de lignes de résultats à charger. Par exemple, si

  • Première ligne en mode Conception = 301
  • Lignes à utiliser en mode Conception = 100

alors la boucle s'effectuera sur les lignes de résultat 301 à 400 (à condition que la requête SQL renvoie autant de lignes).