Команда

Команда

Команда используется для выполнения SQL-запросов к базе данных Важно не путать команду, которая является СОМ-объектом, с текстом команды, который представляет собой строку. Обычно команды используют для описания данных, например для создания таблицы и предоставления привилегий, и манипуляции данными, например для обновления и удаления строк Особый случай манитчя- ции данными - создание набора строк (примером служит оператор SQL SELECT).

Спецификация OLE DB определяет гибкий набор интерфейсов для выполнения и обработки результатов SQL-запросов. Определяется так последовательность шагов:

* Создание команды.

* Установка текста запроса.

* Подготовка запроса.

* Подготовка параметров запроса.

* Установка свойств результирующего множества (набора данных).

* Выполнение запроса.

Создание команды

Как уже было отмечено ранее, объект команды создается объектом сессии.

С помощью отдельной сессии можно создать много команд

По умолчанию команда пользуется транзакцией породившей ее сессии Если же сессия не содержит активной транзакции и разрешен режим автоматического подтверждения/отката, то команда будет выполняться в своей собственной автоматической транзакции, не зависящей от сессии.

Примеры создания команд.

ADODB

Dim сn As New ADODB.Connection

сn.Open "file name=d:databaseemployee.ibp"

Dim cmd As New ADODB.Command cmd.ActiveConnection = сn

C++

t_db_data_source сn;

_THROW_OLEDB_FAILED(cn, attach(

"file name=d:\database\employee.ibp"));

t_db_session session;

_THROW_OLEDB_FAILED(session,create(en));

t_db_command cmdl,cmd2;

//Создаем команду традиционным способом,

//используя объект C++ сессии

_THROW_OLEDB_FAILED(cmdl,create(session));

//Команду также можно создать, обладая

//только указателем на lUnknown OLE DB-сессии.

//Это более подходящий способ для СОМ-объектов

IUnknownPtr spSession(session session_obj());

_THTOW_OLEDB_FAILED(cmd2,create(spSession));