OdbcCommand.CommandText Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger sql-instruktionen eller den lagrade proceduren som ska köras mot datakällan.
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
Egenskapsvärde
SQL-instruktionen eller den lagrade procedur som ska köras. Standardvärdet är en tom sträng ("").
Implementeringar
Kommentarer
När egenskapen CommandType är inställd på StoredProcedureCommandText ska egenskapen anges med hjälp av standard-ODBC-lagrade procedurrymningssekvenser. Att ange CommandText till namnet på den lagrade proceduren fungerar inte som för andra .NET Framework-dataproviders.
Många språkfunktioner, till exempel yttre kopplingar och skalära funktionsanrop, implementeras vanligtvis av datakällor. Även syntaxen för dessa funktioner är vanligtvis datakällaspecifik. Därför definierar ODBC escape-sekvenser som innehåller standardsyntax för följande språkfunktioner:
Datum, tid, tidsstämpel och datetime-intervallliteraler
Skalära funktioner som numeriska funktioner, sträng- och datatypkonverteringsfunktioner
LIKE-predikatets escape-tecken
Yttre kopplingar
Proceduranrop
Escape-sekvensen som används av ODBC är följande:
{extension}
Den här escape-sekvensen identifieras och parsas av ODBC-drivrutiner. De ersätter sedan alla escape-sekvenser med datakällans specifika grammatik.
En procedur är ett körbart objekt som lagras i datakällan. I allmänhet är det en eller flera SQL-instruktioner som har förkompilerats. Escape-sekvensen för att anropa en procedur är
{[?=]call procedure-name[([parameter][,[parameter]]...)]}
där procedure-name anger namnet på en procedur och parameter anger en procedurparameter.
Kommandot kör den här lagrade proceduren när du anropar någon av körningsmetoderna (till exempel ExecuteReader eller ExecuteNonQuery).
Du kan inte ange Connectionegenskaperna , CommandType och CommandText om den aktuella anslutningen utför en körnings- eller hämtningsåtgärd.
ODBC.NET-providern stöder inte namngivna parametrar för att skicka parametrar till en SQL-instruktion eller en lagrad procedur som anropas av en OdbcCommand när CommandType anges till Text. I det här fallet måste platshållaren för frågetecken (?) användas. Ett exempel:
SELECT * FROM Customers WHERE CustomerID = ?
Därför måste den ordning i vilken OdbcParameter objekt läggs till OdbcParameterCollection i måste direkt motsvara positionen för frågetecknets platshållare för parametern.
Om en parameter innehåller ett null-värde binder .NET Framework-Data Provider för ODBC fortfarande den parametern, men använder en standardparameter, om en har definierats med hjälp av SQL_DEFAULT_PARAM, i stället för null-värdet. Till exempel OdbcParameterCollection:
{1, null, 2}
skickas till egenskapen CommandText :
{call sp(?, ?, ?)}
orsakar .NET Framework-Data Provider för ODBC som binder den första parametern till värdet 1, den tredje parametern till värdet 2 och den andra parametern som SQL_DEFAULT_PARAM. Det här beteendet är dock drivrutinsberoende. Om drivrutinen inte stöder den här funktionen skickar du bara inte ett värde för parametern. Använd till exempel OdbcParameterCollection:
{1, 2}
och ange egenskapen CommandText till följande:
{call sp(?, null, ?)}
Note
Om en parameter utelämnas måste kommatecknet som avgränsar den från andra parametrar fortfarande visas. Om en indata- eller indata-/utdataparameter utelämnas använder proceduren parameterns standardvärde. Ett annat sätt att ange standardvärdet för en indata- eller indata-/utdataparameter är att ange värdet för den längd-/indikatorbuffert som är bunden till parametern till SQL_DEFAULT_PARAM.