OdbcCommand.CommandText Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee haalt u de SQL-instructie of opgeslagen procedure op die moet worden uitgevoerd op basis van de gegevensbron.
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
Waarde van eigenschap
De SQL-instructie of opgeslagen procedure die moet worden uitgevoerd. De standaardwaarde is een lege tekenreeks ("").
Implementeringen
Opmerkingen
Wanneer de CommandType eigenschap is ingesteld op StoredProcedure, moet de CommandText eigenschap worden ingesteld met behulp van standaard opgeslagen ODBC-procedure escapereeksen. Het instellen van de CommandText op de naam van de opgeslagen procedure werkt niet zoals voor andere .NET Framework-gegevensproviders.
Veel taalfuncties, zoals outer joins en scalaire functie-aanroepen, worden over het algemeen geïmplementeerd door gegevensbronnen. Zelfs de syntaxis voor deze functies is over het algemeen gegevensbronspecifiek. ODBC definieert daarom escapereeksen die standaardsyntaxis bevatten voor de volgende taalfuncties:
Letterlijke datum-, tijd-, tijdstempel- en datum/tijd-interval
Scalaire functies, zoals numerieke, tekenreeks- en gegevenstypeconversiefuncties
Escape-teken bij LIKE-predicaat
Externe joins
Procedureaanroepen
De escapereeks die door ODBC wordt gebruikt, is als volgt:
{extension}
Deze escapereeks wordt herkend en geparseerd door ODBC-stuurprogramma's. Vervolgens vervangen ze escapereeksen door gegevensbronspecifieke grammatica.
Een procedure is een uitvoerbaar object dat is opgeslagen in de gegevensbron. Over het algemeen zijn het een of meer SQL-instructies die vooraf zijn gecompileerd. De escapereeks voor het aanroepen van een procedure is
{[?=]call procedure-name[([parameter][,[parameter]]...)]}
waarbij procedure-name de naam van een procedure wordt opgegeven en parameter een procedureparameter wordt opgegeven.
Met de opdracht wordt deze opgeslagen procedure uitgevoerd wanneer u een van de execute-methoden aanroept (bijvoorbeeld ExecuteReader of ExecuteNonQuery).
U kunt de Connectionen CommandTypeCommandText eigenschappen niet instellen als de huidige verbinding een uitvoerings- of ophaalbewerking uitvoert.
De ODBC.NET Provider biedt geen ondersteuning voor benoemde parameters voor het doorgeven van parameters aan een SQL-instructie of een opgeslagen procedure die wordt aangeroepen door een OdbcCommand wanneer CommandType is ingesteld op Text. In dit geval moet de tijdelijke aanduiding voor het vraagteken (?) worden gebruikt. Voorbeeld:
SELECT * FROM Customers WHERE CustomerID = ?
Daarom moet de volgorde waarin OdbcParameter objecten aan de OdbcParameterCollection parameter worden toegevoegd, rechtstreeks overeenkomen met de positie van de tijdelijke aanduiding voor het vraagteken voor de parameter.
Als een parameter een null-waarde bevat, koppelt de .NET Framework-Data Provider voor ODBC die parameter nog steeds, maar gebruikt een standaardparameter, als deze is gedefinieerd met behulp van SQL_DEFAULT_PARAM, in plaats van de null-waarde. Bijvoorbeeld:OdbcParameterCollection
{1, null, 2}
doorgegeven aan de CommandText eigenschap:
{call sp(?, ?, ?)}
zorgt ervoor dat de .NET Framework-Data Provider voor ODBC de eerste parameter binden aan de waarde 1, de derde parameter aan de waarde 2 en de tweede parameter als SQL_DEFAULT_PARAM. Dit gedrag is echter afhankelijk van het stuurprogramma. Als het stuurprogramma deze functionaliteit niet ondersteunt, geeft u alleen geen waarde door voor de parameter. Gebruik bijvoorbeeld het OdbcParameterCollectionvolgende:
{1, 2}
en stel de CommandText eigenschap in op het volgende:
{call sp(?, null, ?)}
Note
Als een parameter wordt weggelaten, moet de door komma's gescheiden door andere parameters nog steeds worden weergegeven. Als een invoer- of invoer-/uitvoerparameter wordt weggelaten, gebruikt de procedure de standaardwaarde van de parameter. Een andere manier om de standaardwaarde van een invoer- of invoer-/uitvoerparameter op te geven, is door de waarde van de lengte/indicatorbuffer die is gebonden aan de parameter in te stellen op SQL_DEFAULT_PARAM.