Sdílet prostřednictvím


OdbcCommand.CommandText Vlastnost

Definice

Získá nebo nastaví příkaz SQL nebo uloženou proceduru pro spuštění proti zdroji dat.

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

Hodnota vlastnosti

Příkaz SQL nebo uložená procedura ke spuštění. Výchozí hodnota je prázdný řetězec ("").

Implementuje

Poznámky

Pokud je vlastnost nastavena CommandType na StoredProcedure, CommandText vlastnost by měla být nastavena pomocí standardních řídicích sekvencí uložené procedury ODBC. CommandText Nastavení názvu uložené procedury nefunguje stejně jako u jiných zprostředkovatelů dat rozhraní .NET Framework.

Mnoho jazykových funkcí, jako jsou vnější spojení a volání skalárních funkcí, jsou obecně implementovány zdroji dat. I syntaxe těchto funkcí je obecně specifická pro zdroj dat. Rozhraní ODBC proto definuje řídicí sekvence, které obsahují standardní syntaxi pro následující jazykové funkce:

  • Datové, časové, razítkové a intervalové literály datetime

  • Skalární funkce, jako jsou číselné funkce, řetězcové funkce a funkce převodních datových typů

  • Escape znak pro LIKE predikát

  • Vnější spojení

  • Volání procedur

Řídicí sekvence používaná rozhraním ODBC je následující:

{extension}

Tato řídicí sekvence je rozpoznána a analyzována ovladači ODBC. Potom nahradí všechny řídicí sekvence gramatikou specifickou pro zdroj dat.

Procedura je spustitelný objekt uložený ve zdroji dat. Obecně platí, že jde o jeden nebo více příkazů SQL, které byly předkompilovány. Řídicí sekvence pro volání procedury je

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

kde procedure-name určuje název procedury a parameter určuje parametr procedury.

Příkaz spustí tuto uloženou proceduru při volání jedné z metod Execute (například ExecuteReader nebo ExecuteNonQuery).

Nelze nastavit ConnectionCommandType a CommandText vlastnosti, pokud aktuální připojení provádí operaci spuštění nebo načtení.

Zprostředkovatel ODBC.NET nepodporuje pojmenované parametry pro předávání parametrů do příkazu SQL nebo uloženou proceduru volanou při OdbcCommandCommandType nastavení na Texthodnotu . V tomto případě se musí použít zástupný symbol otazníku (?). Například:

SELECT * FROM Customers WHERE CustomerID = ?

Proto pořadí, ve kterém OdbcParameter jsou objekty přidány do OdbcParameterCollection musí přímo odpovídat pozici zástupného symbolu otazníku pro parametr.

Pokud parametr obsahuje hodnotu null, zprostředkovatel dat rozhraní .NET Framework pro ROZHRANÍ ODBC tento parametr stále sváže, ale používá výchozí parametr, pokud byl definován pomocí SQL_DEFAULT_PARAM místo hodnoty null. Například:OdbcParameterCollection

{1, null, 2}

předáno do CommandText vlastnosti:

{call sp(?, ?, ?)}

způsobí, že zprostředkovatel dat rozhraní .NET Framework pro rozhraní ODBC sváže první parametr s hodnotou 1, třetí parametr na hodnotu 2 a druhý parametr jako SQL_DEFAULT_PARAM. Toto chování je však závislé na ovladači. Pokud ovladač tuto funkci nepodporuje, nepředávejte hodnotu parametru. Použijte OdbcParameterCollectionnapříklad:

{1, 2}

a nastavte CommandText vlastnost na následující:

{call sp(?, null, ?)}

Poznámka:

Pokud parametr vynecháte, musí se stále zobrazovat čárka, která ho odděluje od ostatních parametrů. Pokud je vstupní nebo vstupní/výstupní parametr vynechán, použije procedura výchozí hodnotu parametru. Dalším způsobem, jak zadat výchozí hodnotu vstupního nebo vstupního/výstupního parametru, je nastavit hodnotu bufferu délky/indikátoru vázaného na parametr na SQL_DEFAULT_PARAM.

Platí pro

Viz také