OdbcCommand.CommandText Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define a instrução SQL ou o procedimento armazenado a ser executado em relação à fonte de dados.
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 da propriedade
A instrução SQL ou o procedimento armazenado a ser executado. O valor padrão é uma cadeia de caracteres vazia ("").
Implementações
Comentários
Quando a CommandType propriedade é definida como StoredProcedure
, a CommandText propriedade deve ser definida usando sequências de escape de procedimento armazenado ODBC padrão. Definir o CommandText como o nome do procedimento armazenado não funciona como funciona para outros provedores de dados .NET Framework.
Muitos recursos de linguagem, como junções externas e chamadas de função escalar, geralmente são implementados por fontes de dados. Até mesmo a sintaxe desses recursos geralmente é específica da fonte de dados. Portanto, o ODBC define sequências de escape que contêm sintaxe padrão para os seguintes recursos de linguagem:
Literais de intervalo de data, hora, carimbo de data e hora
Funções escalares, como funções de conversão numéricas, de cadeia de caracteres e de tipo de dados
Caractere de escape de predicado LIKE
Junções externas
Chamadas de procedimento
A sequência de escape usada pelo ODBC é a seguinte:
{extension}
Essa sequência de escape é reconhecida e analisada por drivers ODBC. Em seguida, eles substituem todas as sequências de escape pela gramática específica da fonte de dados.
Um procedimento é um objeto executável armazenado na fonte de dados. Em geral, é uma ou mais instruções SQL que foram pré-compiladas. A sequência de escape para chamar um procedimento é
{[?=]call procedure-name[([parameter][,[parameter]]...)]}
em que procedure-name
especifica o nome de um procedimento e parameter
especifica um parâmetro de procedimento.
O comando executa esse procedimento armazenado quando você chama um dos métodos Execute (por exemplo, ExecuteReader ou ExecuteNonQuery).
Você não poderá definir as Connectionpropriedades e CommandTypeCommandText se a conexão atual estiver executando uma operação de execução ou busca.
O provedor de ODBC.NET não dá suporte a parâmetros nomeados para passar parâmetros para uma instrução SQL ou um procedimento armazenado chamado por um OdbcCommand quando CommandType é definido Text
como . Nesse caso, o espaço reservado do ponto de interrogação (?) deve ser usado. Por exemplo:
SELECT * FROM Customers WHERE CustomerID = ?
Portanto, a ordem na qual OdbcParameter os objetos são adicionados ao OdbcParameterCollection deve corresponder diretamente à posição do espaço reservado do ponto de interrogação para o parâmetro .
Se um parâmetro contiver um valor nulo, o provedor de dados .NET Framework para ODBC ainda associará esse parâmetro, mas usará 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 provedor de dados .NET Framework para ODBC vincule o primeiro parâmetro ao valor 1, o terceiro parâmetro ao valor 2 e o segundo parâmetro como SQL_DEFAULT_PARAM. No entanto, esse comportamento depende do driver. Se o driver não der suporte a essa funcionalidade, simplesmente não passe um valor para o parâmetro . Por exemplo, use o OdbcParameterCollection:
{1, 2}
e defina a CommandText propriedade para o seguinte:
{call sp(?, null, ?)}
Observação
Se um parâmetro for omitido, a vírgula que o delimita de outros parâmetros ainda deverá aparecer. Se um parâmetro de entrada ou entrada/saída for omitido, o procedimento usará o valor padrão do parâmetro. Outra maneira de especificar o valor padrão de um parâmetro de entrada ou entrada/saída é definir o valor do buffer de comprimento/indicador associado ao parâmetro como SQL_DEFAULT_PARAM.