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.