OdbcCommand.CommandText Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia instrukcję SQL lub procedurę składowaną do wykonania względem źródła danych.
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
Wartość właściwości
Instrukcja SQL lub procedura składowana do wykonania. Wartością domyślną jest ciąg pusty ("").
Implementuje
Uwagi
CommandType Gdy właściwość jest ustawiona na StoredProcedure
wartość , CommandText należy ustawić właściwość przy użyciu standardowych sekwencji ucieczki procedury składowanej ODBC.
CommandText Ustawienie wartości na nazwę procedury składowanej nie działa tak samo jak w przypadku innych dostawców danych .NET Framework.
Wiele funkcji językowych, takich jak sprzężenia zewnętrzne i wywołania funkcji skalarnych, są zwykle implementowane przez źródła danych. Nawet składnia tych funkcji jest ogólnie specyficzna dla źródła danych. W związku z tym ODBC definiuje sekwencje ucieczki, które zawierają standardową składnię dla następujących funkcji językowych:
Literały daty, godziny, znacznika czasu i interwału daty/godziny
Funkcje skalarne, takie jak funkcje konwersji liczb, ciągów i typów danych
Znak ucieczki LIKE predykatu
Sprzężenia zewnętrzne
Wywołania procedur
Sekwencja ucieczki używana przez ODBC jest następująca:
{extension}
Ta sekwencja ucieczki jest rozpoznawana i analizowana przez sterowniki ODBC. Następnie zastępują wszystkie sekwencje ucieczki gramatyką specyficzną dla źródła danych.
Procedura jest obiektem wykonywalnym przechowywanym w źródle danych. Ogólnie rzecz biorąc, jest to co najmniej jedna instrukcja SQL, która została wstępnie skompilowana. Sekwencja ucieczki do wywoływania procedury jest
{[?=]call procedure-name[([parameter][,[parameter]]...)]}
gdzie procedure-name
określa nazwę procedury i parameter
określa parametr procedury.
Polecenie wykonuje tę procedurę składowaną podczas wywoływania jednej z metod Execute (na przykład ExecuteReader lub ExecuteNonQuery).
Nie można ustawić Connectionwłaściwości i CommandText , CommandType jeśli bieżące połączenie wykonuje operację wykonywania lub pobierania.
Dostawca ODBC.NET nie obsługuje nazwanych parametrów do przekazywania parametrów do instrukcji SQL lub procedury składowanej wywoływanej OdbcCommand przez parametr , gdy CommandType jest ustawiona na Text
. W tym przypadku należy użyć symbolu zastępczego znaku zapytania (?). Na przykład:
SELECT * FROM Customers WHERE CustomerID = ?
W związku z tym kolejność OdbcParameter dodawania obiektów do OdbcParameterCollection obiektu musi bezpośrednio odpowiadać pozycji symbolu zastępczego znaku zapytania dla parametru.
Jeśli parametr zawiera wartość null, dostawca danych .NET Framework dla ODBC nadal wiąże ten parametr, ale używa parametru domyślnego, jeśli został zdefiniowany przy użyciu SQL_DEFAULT_PARAM, zamiast wartości null. Na przykład :OdbcParameterCollection
{1, null, 2}
przekazano CommandText do właściwości :
{call sp(?, ?, ?)}
powoduje, że dostawca danych .NET Framework dla odBC powiązanie pierwszego parametru z wartością 1, trzeci parametr z wartością 2, a drugi parametr jako SQL_DEFAULT_PARAM. Jednak to zachowanie jest zależne od sterownika. Jeśli sterownik nie obsługuje tej funkcji, po prostu nie przekazuj wartości parametru. Na przykład użyj polecenia OdbcParameterCollection:
{1, 2}
i ustaw CommandText właściwość na następującą:
{call sp(?, null, ?)}
Uwaga
Jeśli parametr zostanie pominięty, przecinek rozdzielania go z innych parametrów musi nadal występować. Jeśli parametr wejściowy lub wejściowy/wyjściowy zostanie pominięty, procedura używa wartości domyślnej parametru. Innym sposobem określenia wartości domyślnej parametru wejściowego lub wejściowego/wyjściowego jest ustawienie wartości buforu długości/wskaźnika powiązanego z parametrem na SQL_DEFAULT_PARAM.