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é

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

Implémente

Remarques

Lorsque la propriété a la CommandTypeStoredProcedurevaleur , la propriété doit être définie à l’aide CommandText de séquences d’échappement de procédure stockée ODBC standard. La définition de sur CommandText le nom de la procédure stockée ne fonctionne pas comme pour d’autres fournisseurs de données .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 les 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 de date, d’heure, d’horodatage et d’intervalle de dateheure

  • Fonctions scalaires telles que les fonctions de conversion de type numérique, de chaîne et de type 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 toutes 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 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 Connectionpropriétés et CommandTypeCommandText si la connexion actuelle 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 quand CommandType est défini sur Text. Dans ce cas, l’espace réservé point d’interrogation (?) doit être utilisé. Exemple :

SELECT * FROM Customers WHERE CustomerID = ?  

Par conséquent, l’ordre dans lequel OdbcParameter les objets sont ajoutés à doit OdbcParameterCollection 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 fournisseur de données .NET Framework 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, le OdbcParameterCollection:

{1, null, 2}  

transmis à la CommandText propriété :

{call sp(?, ?, ?)}  

fait que le fournisseur de données .NET Framework pour ODBC lie le 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é, il suffit de ne pas passer 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 le délimitant d’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 liée au paramètre sur SQL_DEFAULT_PARAM.

S’applique à

Voir aussi