Le bloc fonction FB_SqlDbRead permet d'exécuter des requêtes SQL qui lisent des données dans la base de données SQL. Les données sont renvoyées dans un tableau à double entrée dont la taille est définie par les paramètres globaux.
Le bloc fonction FB_SqlDbRead est l'interface utilisateur qui permet de lire des données provenant de la base de données SQL.
Lorsqu'un front montant est détecté sur i_xExecute, une connexion à la SQL Gateway est établie à l'aide des paramètres définis dans la structure ST_ConnectionSettings. Dès la connexion établie, le bloc fonction peut envoyer une requête SQL à la base de données SQL.
Les messages d'état et les informations de diagnostic sont fournis à l'aide des sorties q_xError (TRUE si une erreur a été détectée), q_etResult et q_etResultMsg.
Entrée |
Type de données |
Description |
---|---|---|
i_xExecute |
BOOL |
Le bloc fonction exécute une requête SQL pour lire des données de la base de données SQL en cas de front montant sur cette entrée. Pour plus d'informations, consultez également la section Comportement des blocs fonction avec l'entrée i_xExecute. |
i_refRequestWstring |
REFERENCE TO [RequestWstring] |
Référence aux données qui contiennent la requête d'interrogation SQL (comme Une requête SQL doit être divisée en plusieurs chaînes ne dépassant pas 200 caractères. Adaptez la taille des paramètres globaux Gc_uiMaxRequest et Gc_uiRequestWstringLength à la longueur des requêtes SQL que vous utilisez dans votre application.
NOTE : Pour concaténer des chaînes WSTRINGS, utilisez la fonction WCONCAT de la bibliothèque Standard64.
|
i_uiNumOfWstrings |
UINT |
Nombre de chaînes WSTRINGS requises qui contiennent la requête SQL divisée. Le nombre maximum est limité par le paramètre global Gc_uiMaxRequest. |
i_refUserData |
REFERENCE TO [UserData] |
Référence aux UserData qui doivent être disponibles sur le contrôleur pour stocker les données SQL lues dans la base de données. |
In_Out |
Type de données |
Description |
---|---|---|
iq_stConnSettings |
ST_ConnectionSettings |
Contient les informations de connexion à une SQL Gateway et les informations concernant la base de données SQL. |
Sortie |
Type de données |
Description |
---|---|---|
q_xBusy |
BOOL |
Si cette sortie est TRUE, le bloc fonction est en cours d'exécution. |
q_xDone |
BOOL |
Si cette sortie est TRUE, l'exécution s'est effectuée correctement. |
q_xError |
BOOL |
Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg. |
q_etResult |
ET_Result |
Fournit des informations de diagnostic et d'état. |
q_sResultMsg |
STRING[255] |
Fournit des informations supplémentaires de diagnostic et d'état. |
q_uiRetNumOfRows |
UINT |
Nombre de lignes dans les données renvoyées. Cette sortie est mise à jour avec le nombre d'enregistrements reçu de la base de données SQL. |
q_uiRetNumOfColumns |
UINT |
Nombre de colonnes dans les données renvoyées. Cette sortie est mise à jour avec le nombre d'enregistrements reçu de la base de données SQL. |
Pour plus d'informations, reportez-vous également à la section Entrées et sorties communes.
Un tableau ARRAY à double entrée doit être disponible sur le contrôleur pour stocker temporairement les données SQL lues dans la base de données. Le tableau ARRAY à double entrée est défini dans l'ALIAS UserData.
La taille du tableau ARRAY peut être adaptée par les paramètres globaux Gc_uiMaxRows, Gc_uiMaxColumns et Gc_uiTableWstringLength.
Lorsque vous configurez ces paramètres, tenez compte du volume de données SQL que vous espérez recevoir. Avant le début du transfert, les données SQL sont segmentées en fonction de la taille de ce tampon.
Si les données SQL reçues dépassent la taille du tableau ARRAY, le transfert des données SQL s'interrompt et le bloc fonction signale une erreur détectée.