OdbcCommand.CommandText Propiedad

Definición

Obtiene o establece una instrucción SQL o un procedimiento almacenado que se van a ejecutar en un origen de datos.

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

Valor de propiedad

Instrucción de SQL o procedimiento almacenado que se va a ejecutar. El valor predeterminado es una cadena vacía ("").

Implementaciones

Comentarios

Cuando la CommandType propiedad se establece StoredProcedureen , la CommandText propiedad debe establecerse mediante secuencias de escape de procedimiento almacenado ODBC estándar. Si se establece en CommandText el nombre del procedimiento almacenado, no funciona como para otros proveedores de datos de .NET Framework.

Muchas características de lenguaje, como combinaciones externas y llamadas a funciones escalares, se implementan generalmente mediante orígenes de datos. Incluso la sintaxis de estas características suele ser específica del origen de datos. Por lo tanto, ODBC define secuencias de escape que contienen sintaxis estándar para las siguientes características de lenguaje:

  • Literales de intervalo de fecha, hora, marca de tiempo y fecha y hora

  • Funciones escalares, como funciones numéricas, de cadena y de conversión de tipos de datos

  • Carácter de escape de predicado LIKE

  • Combinaciones externas

  • Llamadas a procedimiento

La secuencia de escape usada por ODBC es la siguiente:

{extension}  

Los controladores ODBC reconocen y analizan esta secuencia de escape. A continuación, reemplazan las secuencias de escape por gramática específica del origen de datos.

Un procedimiento es un objeto ejecutable almacenado en el origen de datos. Normalmente, se trata de una o varias instrucciones SQL compiladas. La secuencia de escape para llamar a un procedimiento es

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

donde procedure-name especifica el nombre de un procedimiento y parameter especifica un parámetro de procedimiento.

El comando ejecuta este procedimiento almacenado cuando se llama a uno de los métodos Execute (por ejemplo, ExecuteReader o ExecuteNonQuery).

No se pueden establecer las Connectionpropiedades , CommandType y CommandText si la conexión actual está realizando una operación de ejecución o captura.

El proveedor de ODBC.NET no admite parámetros con nombre para pasar parámetros a una instrucción SQL o a un procedimiento almacenado llamado por un OdbcCommand cuando CommandType se establece Texten . En este caso, se debe usar el marcador de posición de signo de interrogación (?). Por ejemplo:

SELECT * FROM Customers WHERE CustomerID = ?  

Por lo tanto, el orden en el que OdbcParameter se agregan objetos a OdbcParameterCollection debe corresponder directamente a la posición del marcador de posición del signo de interrogación para el parámetro .

Si un parámetro contiene un valor NULL, el proveedor de datos de .NET Framework para ODBC sigue enlazando ese parámetro, pero usa un parámetro predeterminado, si se ha definido mediante SQL_DEFAULT_PARAM, en lugar del valor null. Por ejemplo, :OdbcParameterCollection

{1, null, 2}  

pasado a la CommandText propiedad :

{call sp(?, ?, ?)}  

hace que el proveedor de datos de .NET Framework para ODBC enlace el primer parámetro al valor 1, el tercer parámetro al valor 2 y el segundo parámetro como SQL_DEFAULT_PARAM. Sin embargo, este comportamiento depende del controlador. Si el controlador no admite esta funcionalidad, simplemente no pase un valor para el parámetro . Por ejemplo, use :OdbcParameterCollection

{1, 2}  

y establezca la CommandText propiedad en lo siguiente:

{call sp(?, null, ?)}  

Nota

Si se omite un parámetro, la coma que lo delimita de otros parámetros debe seguir apareciendo. Si se omite un parámetro de entrada o de entrada/salida, el procedimiento usa el valor predeterminado del parámetro. Otra manera de especificar el valor predeterminado de un parámetro input o input/output es establecer el valor del búfer length/indicator enlazado al parámetro en SQL_DEFAULT_PARAM.

Se aplica a

Consulte también