Шаг 14 - Выполняем команду

Для того, чтобы двигаться дальше и запускать на выполнения команды нам нужно объявить дополнительные переменные.

//Группа переменных для выполнения команды
ICommandText*   pICommandText;
LPCOLESTR wSQLString = OLESTR("SELECT CompanyName,City, Phone, Fax FROM Customers ORDER BY CompanyName, City");
IRowset*    pIRowset;LONG      cRowsAffected;

Первая переменная это указатель на интерфейс, с помощью которого можно выполнять текстовые команды. Дальше сама строка с SQL запросом. Дальше указатель на интерфейс для работы с рядами данных. И так в прошлый раз мы создали сессию. Пора создать объект команд. Все как всегда получаем интерфейс, проверяем на ошибки, предыдущий освобождаем.

// Создаем обьект команды
hr = pIDBCreateCommand->CreateCommand(NULL, IID_ICommandText,(IUnknown**) &pICommandText);
if (FAILED(hr))
{	
	cout << "Error create command object" <<  endl;
	pIDBInitialize->Uninitialize();	pIDBInitialize->Release(); 	
	CoUninitialize();
	return;
}
pIDBCreateCommand->Release();

Получив интерфейс на объект выполняющий текстовые команды мы теперь может наконец выполнить сам запрос SQL конечно проверив выполнение на корректность.

//Передаем строку с командой SQL
pICommandText->SetCommandText(DBGUID_DBSQL, wSQLString);
hr = pICommandText->Execute(NULL, IID_IRowset, NULL,&cRowsAffected, (IUnknown**) &pIRowset);
if (FAILED(hr))
{	
	cout << "Error Execute Command" << endl;
	pICommandText->Release();	pIDBInitialize->Uninitialize();
	pIDBInitialize->Release(); 	CoUninitialize();	
	return;
}

Ну вот, мы выполнили SQL запрос. Меня радует, что хоть до сюда добрались. Как то муторно все от этих новых технологий.


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.