OdbcCommand.CommandText Propriété

Définition

Obtient ou définit la instruction SQL ou procédure stockée à exécuter par rapport à la source de données.

public:
 virtual property System::String ^ CommandText { System::String ^ get(); void set(System::String ^ value); };
public:
 property System::String ^ CommandText { System::String ^ get(); void set(System::String ^ value); };
public override string CommandText { get; set; }
public string CommandText { get; set; }
member this.CommandText : string with get, set
Public Overrides Property CommandText As String
Public Property CommandText As String

Valeur de propriété

String

Instruction SQL ou procédure stockée à exécuter. La valeur par défaut est une chaîne vide ("").

Implémente

Remarques

Lorsque la CommandType propriété a la valeur StoredProcedure , la CommandText propriété doit être définie à l’aide de séquences d’échappement de procédure stockée ODBC standard. la définition de CommandText sur le nom de la procédure stockée ne fonctionne pas comme pour d’autres fournisseurs de données de .NET Framework.

De nombreuses fonctionnalités de langage, telles que les jointures externes et les appels de fonction scalaire, sont généralement implémentées par des sources de données. Même la syntaxe de ces fonctionnalités est généralement spécifique à la source de données. Par conséquent, ODBC définit des séquences d’échappement qui contiennent une syntaxe standard pour les fonctionnalités de langage suivantes :

  • Littéraux date, Time, timestamp et DateTime Interval

  • Fonctions scalaires telles que des fonctions numériques, de chaîne et de conversion de types de données

  • Caractère d’échappement de prédicat LIKE

  • Jointures externes

  • Appels de procédure

La séquence d’échappement utilisée par ODBC est la suivante :

{extension}  

Cette séquence d’échappement est reconnue et analysée par les pilotes ODBC. Ils remplacent ensuite les séquences d’échappement par une grammaire spécifique à la source de données.

Une procédure est un objet exécutable stocké dans la source de données. Généralement, il s'agit d'une ou plusieurs instructions SQL qui ont été précompilées. La séquence d’échappement pour appeler une procédure est

{[?=]call procedure-name[([parameter][,[parameter]]...)]}  

procedure-name spécifie le nom d’une procédure et parameter spécifie un paramètre de procédure.

La commande exécute cette procédure stockée lorsque vous appelez l’une des méthodes Execute (par exemple, ExecuteReader ou ExecuteNonQuery ).

Vous ne pouvez pas définir les Connection CommandType Propriétés, et CommandText si la connexion active effectue une opération d’exécution ou d’extraction.

le fournisseur ODBC.NET ne prend pas en charge les paramètres nommés pour passer des paramètres à une instruction SQL ou à une procédure stockée appelée par un OdbcCommand lorsque CommandType a la valeur Text . Dans ce cas, l’espace réservé de point d’interrogation ( ?) doit être utilisé. Exemple :

SELECT * FROM Customers WHERE CustomerID = ?  

Par conséquent, l’ordre dans lequel les OdbcParameter objets sont ajoutés au OdbcParameterCollection doit correspondre directement à la position de l’espace réservé de point d’interrogation pour le paramètre.

si un paramètre contient une valeur null, le .NET Framework Fournisseur de données pour ODBC lie toujours ce paramètre, mais utilise un paramètre par défaut, s’il a été défini à l’aide de SQL_DEFAULT_PARAM, au lieu de la valeur null. Par exemple, OdbcParameterCollection :

{1, null, 2}  

passé dans la CommandText propriété :

{call sp(?, ?, ?)}  

provoque l' .NET Framework Fournisseur de données pour la liaison ODBC du premier paramètre à la valeur 1, le troisième paramètre à la valeur 2 et le deuxième paramètre comme SQL_DEFAULT_PARAM. Toutefois, ce comportement dépend du pilote. Si le pilote ne prend pas en charge cette fonctionnalité, ne transmettez pas de valeur pour le paramètre. Par exemple, utilisez OdbcParameterCollection :

{1, 2}  

et définissez la CommandText propriété sur ce qui suit :

{call sp(?, null, ?)}  

Notes

Si un paramètre est omis, la virgule qui le sépare des autres paramètres doit toujours apparaître. Si un paramètre d'entrée ou d'entrée/sortie est omis, la procédure utilise la valeur par défaut du paramètre. Une autre façon de spécifier la valeur par défaut d’un paramètre d’entrée ou d’entrée/sortie consiste à définir la valeur de la mémoire tampon de longueur/d’indicateur associée au paramètre sur SQL_DEFAULT_PARAM.

S’applique à

Voir aussi