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).

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

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

SELECT * FROM Customers WHERE CustomerID = ?

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

Если параметр содержит значение 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.

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

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