OdbcCommand.CommandText Propriedade

Definição

Obtém ou define a instrução SQL ou o procedimento armazenado para serem executados na fonte de dados.

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

Valor de Propriedade

A instrução SQL ou procedimento armazenado a executar. O valor padrão é uma cadeia vazia ("").

Implementações

Observações

Quando a CommandType propriedade é definida para StoredProcedure, a CommandText propriedade deve ser definida usando sequências padrão de escape ODBC stored procedure. Definir o CommandText para o nome do procedimento armazenado não funciona como funciona para outros fornecedores de dados .NET Framework.

Muitas funcionalidades da linguagem, como uniões externas e chamadas de funções escalares, são geralmente implementadas por fontes de dados. Mesmo a sintaxe destas funcionalidades é geralmente específica da fonte de dados. Portanto, o ODBC define sequências de escape que contêm sintaxe padrão para as seguintes funcionalidades da linguagem:

  • Data, hora, carimbo temporal e intervalo de data e hora literal

  • Funções escalares como funções de conversão numérica, de cadeia e de tipos de dados

  • Caráter de escape do predicado LIKE

  • Junções exteriores

  • Chamadas de procedimento

A sequência de escape usada pelo ODBC é a seguinte:

{extension}

Esta sequência de escape é reconhecida e analisada pelos drivers ODBC. Depois, substituem quaisquer sequências de escape por gramática específica da fonte de dados.

Um procedimento é um objeto executável armazenado na fonte de dados. Geralmente, são uma ou mais instruções SQL que foram pré-compiladas. A sequência de escape para chamar um procedimento é

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

onde procedure-name especifica o nome de um procedimento e parameter especifica um parâmetro de procedimento.

O comando executa este procedimento armazenado quando chama um dos métodos Execute (por exemplo, ExecuteReader ou ExecuteNonQuery).

Não pode definir as Connectionpropriedades de , CommandType e CommandText se a ligação atual estiver a executar ou buscar uma operação.

O ODBC.NET Provider não suporta parâmetros nomeados para passar parâmetros a uma instrução SQL ou a um procedimento armazenado chamado por um OdbcCommand quando CommandType está definido para Text. Neste caso, deve ser usado o marcador de interrogação (?). Por exemplo:

SELECT * FROM Customers WHERE CustomerID = ?

Portanto, a ordem em que OdbcParameter os objetos são adicionados OdbcParameterCollection ao deve corresponder diretamente à posição do marcador de interrogação para o parâmetro.

Se um parâmetro contiver um valor nulo, o Data Provider do .NET Framework para ODBC ainda associa esse parâmetro, mas usa um parâmetro padrão, se tiver sido definido usando SQL_DEFAULT_PARAM, em vez do valor nulo. Por exemplo, o OdbcParameterCollection:

{1, null, 2}

passado para a CommandText propriedade:

{call sp(?, ?, ?)}

faz com que o .NET Framework Data Provider para ODBC ligue o primeiro parâmetro ao valor 1, o terceiro parâmetro ao valor 2 e o segundo parâmetro a SQL_DEFAULT_PARAM. No entanto, este comportamento depende do condutor. Se o driver não suportar esta funcionalidade, simplesmente não passe um valor para o parâmetro. Por exemplo, use o OdbcParameterCollection:

{1, 2}

e definir a CommandText propriedade para o seguinte:

{call sp(?, null, ?)}

Note

Se um parâmetro for omitido, a vírgula que o delimita de outros parâmetros deve continuar a aparecer. Se um parâmetro de entrada ou entrada/saída for omitido, o procedimento utiliza o valor padrão do parâmetro. Outra forma de especificar o valor padrão de um parâmetro de entrada ou entrada/saída é definir o valor do buffer de comprimento/indicador ligado ao parâmetro para SQL_DEFAULT_PARAM.

Aplica-se a

Ver também