OdbcCommand.CommandText Свойство

Определение

Возвращает или задает инструкцию или хранимую процедуру SQL, выполняемую с источником данных.

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

Значение свойства

Инструкция или хранимая процедура SQL, подлежащая выполнению. Значение по умолчанию — пустая строка.

Реализации

Комментарии

Если свойству CommandType присвоено значение StoredProcedure, CommandText свойство должно быть задано с помощью стандартных escape-последовательностей хранимой процедуры ODBC. CommandText Задание имени хранимой процедуры не работает так, как для других поставщиков данных платформа .NET Framework.

Многие функции языка, такие как внешние соединения и вызовы скалярных функций, обычно реализуются источниками данных. Даже синтаксис для этих функций, как правило, зависит от источника данных. Поэтому ODBC определяет escape-последовательности, содержащие стандартный синтаксис для следующих функций языка:

  • Литералы даты, времени, метки времени и интервала даты и времени

  • Скалярные функции, такие как числовые, строковые и функции преобразования типов данных

  • Escape-символ предиката LIKE

  • Внешние соединения

  • Вызовы процедур

Escape-последовательность, используемая ODBC, выглядит следующим образом:

{extension}  

Эта escape-последовательность распознается и анализируется драйверами ODBC. Затем они заменяют все escape-последовательности грамматикой для конкретного источника данных.

Процедура — это исполняемый объект, хранящийся в источнике данных. Обычно процедурой является одна или несколько заранее скомпилированных инструкций SQL. Escape-последовательность для вызова процедуры :

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

где procedure-name задает имя процедуры и parameter параметр процедуры.

Команда выполняет эту хранимую процедуру при вызове одного из методов Execute (например, ExecuteReader или ExecuteNonQuery).

Нельзя задать Connectionсвойства , и CommandText , CommandType если текущее соединение выполняет операцию выполнения или получения.

Поставщик ODBC.NET не поддерживает именованные параметры для передачи параметров в инструкцию SQL или хранимую процедуру, вызываемую , OdbcCommand если CommandType для задано значение Text. В этом случае необходимо использовать заполнитель вопросительного знака (?). Пример:

SELECT * FROM Customers WHERE CustomerID = ?  

Таким образом, порядок добавления OdbcParameterCollection объектов в OdbcParameter должен напрямую соответствовать положению заполнителя вопросительного знака для параметра.

Если параметр содержит значение NULL, поставщик данных платформа .NET Framework для ODBC по-прежнему привязывает этот параметр, но использует параметр по умолчанию, если он был определен с помощью SQL_DEFAULT_PARAM, вместо значения NULL. Например, :OdbcParameterCollection

{1, null, 2}  

передается в CommandText свойство :

{call sp(?, ?, ?)}  

вызывает платформа .NET Framework поставщика данных для ODBC, привязывая первый параметр к значению 1, третий параметр — к значению 2, а второй параметр — к SQL_DEFAULT_PARAM. Однако это поведение зависит от драйвера. Если драйвер не поддерживает эту функцию, просто не передайте значение для параметра . Например, используйте OdbcParameterCollection:

{1, 2}  

и задайте для CommandText свойства следующее значение:

{call sp(?, null, ?)}  

Примечание

Если параметр опущен, запятая, отделяющая его от других параметров, должна по-прежнему отображаться. Если пропущен входной или входной-выходной параметр, процедура использует значение по умолчанию. Другой способ указать значение по умолчанию входного или входного/выходного параметра — задать значение буфера длины или индикатора, привязанного к параметру, SQL_DEFAULT_PARAM.

Применяется к

См. также раздел