Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ InTouch HMI

SQLSelect()

  • Last UpdatedSep 24, 2024
  • 3 minute read

La fonction SQLSelect() récupère les enregistrements d'une table. Lorsque le script contenant fonction SQLSelect() est exécutée, les enregistrements récupérés sont installés en mémoire dans une table de résultats temporaire. Vous pouvez parcourir ces enregistrements à l'aide des fonctions SQLFirst(), SQLLast(), SQLNext() et SQLPrev().

Important : appelez toujours la fonction SQLEnd() après la fin du script contenant la fonction SQLSelect(), afin de libérer la mémoire utilisée pour la table de résultats.

Catégorie

SQL

Syntaxe

[ResultCode=]SQLSelect(ConnectionID,TableName, BindList,WhereExpr,OrderByExpression);

Arguments

ConnectionID

Nom d'une variable mémoire de type entier, renseignée avec le numéro d'identifiant attribué par la fonction SQLConnect() à chaque connexion avec la base de données.

TableName

Nom de la table de données à atteindre.

BindList

Définit les associations entre les variables InTouch et la base de données.

WhereExpr

Définit une condition de type vrai ou faux pour chaque ligne de la table. La fonction SQLSelect() extrait uniquement les lignes pour lesquelles la condition WhereExpr est vraie. L'expression doit avoir le format suivant<:hs>:

NomColonne opérateur_comparaison expression.

Remarque : dans le cas d’une comparaison de chaînes, l’expression doit être placée entre apostrophes.

L'exemple suivant sélectionnera toutes les lignes dont la colonne «<:hs>Name<:hs>» contient la valeur «<:hs>EmployeeID<:hs>»<:hs>:

Name='EmployeeID'

L'exemple suivant sélectionne toutes les lignes contenant des numéros de pièces entre 100 et 199<:hs>:

partno>=100 and partno<200

L'exemple suivant sélectionne tous les enregistrements dont la colonne «<:hs>temperature<:hs>» contient une valeur supérieure à 350<:hs>:

temperature>350

WhereExpr: Variable mémoire de type message

OrderByExpr: Var. mémoire message

Speed_Input: Var. mémoire réelle - saisie analogique de l'utilisateur

Serial_Input: Var. mémoire message - saisie chaîne de l'utilisateur

Exemple avec une valeur analogique

WhereExpr = "Speed = " + text
(Speed_Input,"#.##");

Speed_Input étant un nombre, il doit être converti en texte afin d'être concaténé à la chaîne WhereExpr.

Exemple avec une valeur chaîne

WhereExpr = "Ser_No = ‘" +
Serial_input + "'";

Serial_Input étant une chaîne, la valeur doit être délimitée par des apostrophes. Par exemple : WhereExpr = "Ser_No='125gh'";

Exemple de chaîne utilisant l'instruction LIKE

WhereExpr = "Ser_No like ‘-'"

Lors de l'utilisation de l'opérateur de comparaison LIKE, le caractère % peut être utilisé comme caractère générique.

Exemple de chaîne et de valeur analogique utilisant l'opérateur booléen AND

WhereExpr = "Ser_No = ‘" + Serial_input + "'" + " and " + "Speed = " + text(Speed_Input,"#.##");OrderByExpr = "";

Si l'ordre importe peu, utilisez une chaîne NULL comme illustré ci-dessus.

SQLSelect avec variable WhereExpr

ResultCode = SQLSelect(Connect_Id,TableName,
BindList,

WhereExpr,OrderByExpr);

Error_msg = SQLErrorMsg( ResultCode );

Fonction WhereExpr intégrée à une instruction SQLSelect

ResultCode = SQLSelect(Connect_Id,TableName,
BindList,

"Ser_No = ‘" + Serial_input + "'", OrderByExpr);

Error_msg = SQLErrorMsg( ResultCode );

OrderByExpr

Définit l'ordre de tri des données à l'intérieur d'une colonne de la table. Seuls les noms de colonnes peuvent être employés pour le tri. L'expression doit avoir le format suivant<:hs>:

ColumnName [ASC|DESC]

L'exemple suivant trie les données de la colonne «<:hs>manager<:hs>» de la table sélectionnée, en ordre croissant<:hs>:

"manager ASC"

Vous pouvez aussi lancer un tri sur plusieurs colonnes, en employant une expression du type suivant<:hs>:

ColumnName [ASC|DESC],

NomColonne [ASC|DESC]

L'exemple suivant trie la table sélectionnée sur la colonne «<:hs>temperature<:hs>» en ordre croissant et sur la colonne «<:hs>time<:hs>» en ordre décroissant<:hs>:

"temperature ASC, time DESC"

Exemples

L'instruction suivante sélectionne des enregistrements de la table BATCH à partir d'une liste de liens nommée List1, dont la colonne nommée "<:hs>type<:hs>" contient la valeur "<:hs>cookie<:hs>". Elle présente les informations triées en ordre croissant de la colonne «<:hs>amount<:hs>» et en ordre décroissant de la colonne «<:hs>sugar<:hs>»<:hs>:

ResultCode=SQLSelect(ConnectionID,"BATCH", "List1","type=’cookie’","amount ASC,sugar DESC");

L'instruction suivante sélectionne toutes les données de la base de données, et ne spécifie aucune valeur pour les arguments WhereExpr et OrderByExpr<:hs>:

ResultCode=SQLSelect(ConnectionID,"BATCH", "List1", "","");

Voir aussi

SQLFirst(), SQLConnect(), SQLLast(), SQLNext(), SQLPrev(), SQLEnd()

In This Topic