Freigeben über


OdbcCommand.CommandText-Eigenschaft

Ruft die SQL-Anweisung oder gespeicherte Prozedur ab, die für die Datenquelle ausgeführt werden soll, oder legt diese fest.

Namespace: System.Data.Odbc
Assembly: System.Data (in system.data.dll)

Syntax

'Declaration
Public Overrides Property CommandText As String
'Usage
Dim instance As OdbcCommand
Dim value As String

value = instance.CommandText

instance.CommandText = value
public override string CommandText { get; set; }
public:
virtual property String^ CommandText {
    String^ get () override;
    void set (String^ value) override;
}
/** @property */
public String get_CommandText ()

/** @property */
public void set_CommandText (String value)
public override function get CommandText () : String

public override function set CommandText (value : String)

Eigenschaftenwert

Die auszuführende SQL-Anweisung oder gespeicherte Prozedur. Der Standardwert ist eine leere Zeichenfolge ("").

Hinweise

Wenn die CommandType-Eigenschaft auf StoredProcedure festgelegt ist, muss die CommandText-Eigenschaft mit Standardescapesequenzen für gespeicherte Prozeduren in ODBC festgelegt werden. Das Festlegen von CommandText auf den Namen der gespeicherten Prozedur funktioniert nicht wie bei anderen .NET Framework-Datenanbietern.

Viele Sprachfeatures wie äußere Verknüpfungen und Aufrufe von Skalarfunktionen werden in der Regel von Datenquellen implementiert. Selbst die Syntax für diese Features ist im Allgemeinen datenquellenspezifisch. Daher werden in ODBC Escapesequenzen definiert, die die Standardsyntax für die folgenden Sprachfeatures enthalten:

  • Intervall-Literale Datum, Uhrzeit, Timestamp und Datetime

  • Skalarfunktionen wie Konvertierungsfunktionen für numerische Daten, Zeichenfolgen und Datentypen

  • Escapezeichen für LIKE-Prädikate

  • Äußere Verknüpfungen

  • Prozeduraufrufe

Die von ODBC verwendete Escapesequenz lautet wie folgt:

{extension}

Diese Escapesequenz wird von ODBC-Treibern erkannt und analysiert. Sie ersetzen dann alle Escapesequenzen mit datenquellenspezifischer Grammatik.

Eine Prozedur ist ein ausführbares Objekt, das in der Datenquelle gespeichert ist. In der Regel handelt es sich dabei um eine oder mehrere vorkompilierte SQL-Anweisungen. Die Escapesequenz für das Aufrufen einer Prozedur lautet wie folgt:

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

Dabei gibt procedure-name den Namen einer Prozedur an, und parameter gibt einen Prozedurparameter an.

Der Befehl führt diese gespeicherte Prozedur aus, wenn eine der Execute-Methoden aufgerufen wird (z. B. ExecuteReader oder ExecuteNonQuery).

Die Eigenschaften Connection, CommandType und CommandText können nicht festgelegt werden, wenn die aktuelle Verbindung eine Ausführungs- oder Abrufoperation ausführt.

Der ODBC-.NET-Anbieter unterstützt keine benannten Parameter für die Übergabe von Parametern an eine SQL-Anweisung oder gespeicherte Prozedur, die von OdbcCommand aufgerufen wird, wenn CommandType auf Text festgelegt ist. In diesem Fall muss das Fragezeichen (?) als Platzhalter verwendet werden. Beispiel:

SELECT * FROM Customers WHERE CustomerID = ?

Die Reihenfolge, in der OdbcParameter-Objekte der OdbcParameterCollection hinzugefügt werden, muss der Position des Fragezeichenplatzhalters für den Parameter direkt entsprechen.

Wenn ein Parameter einen NULL-Wert enthält, bindet der .NET Framework-Datenanbieter für ODBC diesen Parameter zwar noch, aber er verwendet anstelle des NULL-Werts einen Standardparameter, wenn ein solcher mit SQL_DEFAULT_PARAM definiert wurde. Beispiel: Die OdbcParameterCollection:

{1, null, 2}

, übergeben an die CommandText-Eigenschaft:

{call sp(?, ?, ?)}

, führt dazu, dass der .NET Framework-Datenanbieter für ODBC den ersten Parameter an den Wert 1, den dritten Parameter an den Wert 2 und den zweiten Parameter als SQL_DEFAULT_PARAM bindet. Dieses Verhalten ist allerdings treiberabhängig. Wenn der Treiber diese Funktion nicht unterstützt, können Sie keinen Wert für den Parameter übergeben. Verwenden Sie z. B. die OdbcParameterCollection:

{1, 2}

und legen Sie die CommandText-Eigenschaft wie folgt fest:

{call sp(?, null, ?)}

Hinweis

Wenn ein Parameter ausgelassen wird, muss das Komma dennoch gesetzt werden, mit dieser Parameter von anderen Parametern abgegrenzt wird. Wenn ein Eingabe- oder ein Eingabe-/Ausgabeparameter ausgelassen wird, verwendet die Prozedur den Standardwert des Parameters. Eine weitere Möglichkeit, den Standardwert eines Eingabe- oder eines Eingabe-/Ausgabeparameters anzugeben, besteht darin, den Wert des an den Parameter gebundenen Längen-/Indikatorpuffers auf SQL_DEFAULT_PARAM festzulegen.

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1

Siehe auch

Referenz

OdbcCommand-Klasse
OdbcCommand-Member
System.Data.Odbc-Namespace
Connection
.Data.Odbc.OdbcCommand.CommandTimeout
CommandType

Weitere Ressourcen

Executing a Command