Энциклопедия C++ Builder



         

ВИЗУАЛЬНАЯ РАЗРАБОТКА ПРИЛОЖЕНИЙ БАЗ ДАННЫХ - часть 17


sprintf(sqls, "SELECT * FROM EMPLOYEE WHERE Salary<%s", fmts);

// Присвоить сформированную команду SELECT свойству SQL

Queryl->SOL->Add(sqls);

try

{

Query 1 ->0pen(); // выполнить команду SELECT )

catch(EDBEngineError* dbError) //

обработка ошибок BDE {

for (int i=0; i<dbError->ErrorCount; i++) MessageBox(0, dbError[i].Message.c_str(), "SQL Error",

MB_OK);, ) 1

Листинг 5.7. Формирование команды SQL с помощью функции

sprintf.

 

Рис. 5.15 показывает работу предыдущего примера: в результате выполнения сформированного запроса пользователь получает список всех служащих, зарплата которых (выбранная из столбца Salary таблицы) оказывается меньше введенного значения.

Рис. 5.15. Результат выполнения сформированного динамического запроса.

Методы Open и ExecSQL предназначены для передачи серверу команды SQL для исполнения. В предыдущих примерах все запросы выдавали единственную команду SELECT. Результат запроса по команде select рассматривается как набор данных, точно так же, как при работе с таблицей. Существуют другие команды

SQL, например, команда UPDATE, которая обновляет содержимое некоторой записи, но не возвращает какой бы то ни было результат. Для исполнения сервером таких запросов следует использовать метод ExecSQL вместо метода Open.

Листинг 5.8 представляет собой некоторое обобщение всех рассмотренных ранее операций с динамическими запросами и их параметрами.

Внимание: это приложение предназначено для управляемой модификации столбца Salary таблицы служащих

EMPLOYEE из демонстрационной базы данных BCDEMOS. Изменения, внесенные командой UPDATE, необратимы, поэтому перед запуском собранного приложения позаботьтесь о том, чтобы сохранить копию оригинальной таблицы. По умолчанию С-н-Builder помещает все таблицы в каталоге инсталляции \.. .\CBuilder\Examples\Data.

void_fastcall TFormI::ButtonlClick(TObject *Sender) { •

char sqls[250]; // массив для хранения команды SELECT char fmts[50]; // массив для зарплаты и надбавки int mins, adds; //




Содержание  Назад  Вперед