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.