OdbcCommand.CommandText Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.