OdbcCommand.CommandText Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 CommandTypeStoredProcedure
valeur , 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]]...)]}
où 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é de 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/indicateur liée au paramètre sur SQL_DEFAULT_PARAM.