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

AVEVA™ InTouch HMI

SQLSetParamNull()

  • Last UpdatedSep 24, 2024
  • 2 minute read

La fonction SQLSetParamNull() définit le paramètre spécifié d'une instruction SQL à NULL.

Catégorie

SQL

Syntaxe

SQLSetParamNull(StatementID, ParameterNumber, ParameterType, Precision, Scale)

Arguments

StatementID

Valeur entière identifiant une instruction SQL dans une requête.

ParameterNumber

Valeur entière désignant le paramètre dans l'instruction SQL identifiée par l'argument StatementID.

ParameterType

Valeur entière spécifiant le type de données du paramètre spécifié par l'argument ParameterNumber. L'argument ParameterType peut être renseigné avec les valeurs suivantes<:hs>:

0: Chaîne

1: Date/Heure

2: Entier

3: Nombre en virgule flottante

4: Nombre décimal

laPrécision

Précision des données correspondant au type du paramètre.

Échelle

Précision de la valeur décimale. Cette valeur n'est nécessaire que pour la définition d'un paramètre nul, lorsque c'est applicable.

Remarques

Dans SQL<:hs>Server, la comparaison avec une valeur NULL est contrôlée par l'option ANSI_NULLS. Dans SQL<:hs>Server 7.0, l'option est appliquée lors de la création de l'objet, non au moment où la requête est exécutée. Lorsqu'une procédure stockée est créée dans SQL<:hs>Server 7.0, cette option prend la valeur ON par défaut, de sorte qu'une clause comme «<:hs>WHERE MyField = NULL<:hs>» renvoie toujours NULL (FAUX). Une instruction SELECT utilisant cette clause ne renverra donc aucune ligne.

Pour faire en sorte qu'une comparaison = ou <> renvoie une valeur VRAI ou FAUX, il faut définir l'option à OFF au moment de la création de la procédure stockée. La fonction SQLSetParamNull() ne s'exécutera pas comme attendu si l'option ANSI_NULLS ne prend pas la valeur OFF. Si c'est le cas, une comparaison sur la valeur NULL devrait faire appel à la syntaxe «<:hs>WHERE MyField IS NULL<:hs>» ou encore «<:hs>WHERE MyField IS NOT NULL<:hs>».

Exemple

Cette transaction renvoie toutes les lignes de la table Products où ProductName n'est pas NULL.

SET ANSI_NULLS OFF

GO

CREATE PROCEDURE sp_TestNotNull @ProductParam varchar(255)

AS SELECT * FROM Products WHERE ProductName <> @ProductParam

GO

SET ANSI_NULLS ON

GO

InTouch peut exécuter les scripts SQL suivants.

ResultCode = SQLSetStatement(ConnectionId, "sp_TestNotNull");

ResultCode = SQLPrepareStatement(ConnectionId, StatementID);

ResultCode = SQLSetParamNull(StatementID, 1, 0, 0, 0);

ResultCode = SQLExecute(ConnectionId, BindList, StatementID);

ResultCode = SQLFirst(ConnectionId);

ResultCode = SQLClearStatement(ConnectionId, StatementID);

Voir aussi

SQLPrepareStatement()