Sdílet prostřednictvím


OdbcCommand.CommandText Vlastnost

Definice

Získá nebo nastaví sql příkaz nebo uložená procedura provést 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, která se má spustit. Výchozí hodnota je prázdný řetězec ("").

Implementuje

Poznámky

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

Mnoho funkcí jazyka, 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í funkce jazyka:

  • Literály data, času, časového razítka a intervalu data a času

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

  • Řídicí znak predikátu LIKE

  • 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. Všechny řídicí sekvence pak nahradí gramatikou specifickou pro zdroj dat.

Procedura je spustitelný objekt uložený ve zdroji dat. Obecně se jedná 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í některé z metod Execute (například ExecuteReader nebo ExecuteNonQuery).

Vlastnosti , CommandType a CommandText nelze nastavitConnection, 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žené procedury volané objektem , OdbcCommand pokud CommandType je nastavena na Texthodnotu . V tomto případě se musí použít zástupný symbol otazníku (?). Pří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 stále váže tento parametr, 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 váže první parametr na hodnotu 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 například OdbcParameterCollection:

{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 od ostatních parametrů odliší. Pokud je vstupní nebo vstupní/výstupní parametr vynechán, procedura použije 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 vyrovnávací paměti délky nebo indikátoru vázané na parametr na SQL_DEFAULT_PARAM.

Platí pro

Viz také