OdbcCommand.CommandText Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta l'istruzione SQL o una stored procedure da eseguire sull'origine dati.
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
Valore della proprietà
Istruzione SQL o stored procedure da eseguire. Il valore predefinito è una stringa vuota ("").
Implementazioni
Commenti
Quando la CommandType proprietà è impostata su , la CommandText proprietà deve essere impostata StoredProcedure
usando sequenze di escape della stored procedure ODBC standard. L'impostazione di sul CommandText nome della stored procedure non funziona come per altri provider di dati .NET Framework.
Molte funzionalità del linguaggio, ad esempio outer join e chiamate di funzione scalari, vengono in genere implementate dalle origini dati. Anche la sintassi per queste funzionalità è in genere specifica dell'origine dati. ODBC definisce pertanto sequenze di escape contenenti sintassi standard per le funzionalità del linguaggio seguenti:
Valori letterali di intervallo date, timestamp e datetime
Funzioni scalari, ad esempio funzioni di conversione numerica, stringa e tipo di dati
Carattere di escape predicato LIKE
Outer join
Chiamate di routine
La sequenza di escape usata da ODBC è la seguente:
{extension}
Questa sequenza di escape viene riconosciuta e analizzata dai driver ODBC. Sostituiscono quindi tutte le sequenze di escape con la grammatica specifica dell'origine dati.
Una routine è un oggetto eseguibile archiviato nell'origine dati. In genere, si tratta di una o più istruzioni SQL precompilate. La sequenza di escape per chiamare una routine è
{[?=]call procedure-name[([parameter][,[parameter]]...)]}
dove procedure-name
specifica il nome di una routine e parameter
specifica un parametro di routine.
Il comando esegue questa stored procedure quando si chiama uno dei metodi Execute , ad esempio ExecuteReader o ExecuteNonQuery.
Non è possibile impostare le ConnectionCommandType proprietà e CommandText se la connessione corrente esegue un'operazione di esecuzione o recupero.
Il provider ODBC.NET non supporta i parametri denominati per il passaggio di parametri a un'istruzione SQL o a una stored procedure chiamata da un OdbcCommand oggetto quando CommandType è impostato su Text
. In questo caso, è necessario usare il segnaposto punto interrogativo (?). Ad esempio:
SELECT * FROM Customers WHERE CustomerID = ?
Pertanto, l'ordine in cui OdbcParameter gli oggetti vengono aggiunti a OdbcParameterCollection deve corrispondere direttamente alla posizione del segnaposto del punto interrogativo per il parametro .
Se un parametro contiene un valore Null, il provider di dati .NET Framework per ODBC associa ancora tale parametro, ma usa un parametro predefinito, se ne è stato definito uno usando SQL_DEFAULT_PARAM, anziché il valore Null. Ad esempio, :OdbcParameterCollection
{1, null, 2}
passato alla CommandText proprietà :
{call sp(?, ?, ?)}
fa sì che il provider di dati .NET Framework per ODBC associa il primo parametro al valore 1, il terzo parametro al valore 2 e il secondo parametro come SQL_DEFAULT_PARAM. Tuttavia, questo comportamento dipende dal driver. Se il driver non supporta questa funzionalità, non passare semplicemente un valore per il parametro . Ad esempio, usare :OdbcParameterCollection
{1, 2}
e impostare la CommandText proprietà su quanto segue:
{call sp(?, null, ?)}
Nota
Se un parametro viene omesso, la virgola che la delimita da altri parametri deve comunque essere visualizzata. Se si omette un parametro di input o di input/output, la procedura utilizza il valore predefinito del parametro. Un altro modo per specificare il valore predefinito di un parametro di input o input/output consiste nell'impostare il valore del buffer di lunghezza/indicatore associato al parametro su SQL_DEFAULT_PARAM.