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



         

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


void_fastcall TFormI::ButtonlClick(TObject *Sender) {

// Деактивировать предыдущий запрос, если он имел место Queryl->Close () ;

if (!Queryl->Prepared)

Queryl->Prepare(); //

подготовить запрос // Заменить значение параметра на введенное пользователем Queryl->ParamByName("FirstName")->AsString =

Editl->Text.c_str() ;

try

{

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

catch(EDBEngineError* dbError) //

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

for (int i=0; i<dbError->ErrorCount; i++)

MessageBox(0, dbError[i].Message.c_str(), "SQL Error", MB_OK) ;

} }

Листинг 5.5. Изменение значения параметра динамического запроса.

Рис. 5.13 показывает работу предыдущего примера: пользователь вводит значение параметра FirstName и в результате выполнения запроса получает список всех служащих с указанным именем.

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

DataSource указывает на источник другого набора данных, отличный от источника данного запроса, из которого вам надо выбрать значения текущего поля. Объект запроса будет сравнивать имя параметра в команде SQL с именами полей дочернего набора данных. Когда имена совпадают, параметр автоматически приобретает значение соответствующего поля. Следующая процедура иллюстрирует процесс создания формы, в которой запрос к таблице заказчиков CUSTOMER соединяется с таблицей заказов ORDERS по номеру заказчика CustNo:

1. Поместите компоненты TQuery и TTable на форму и установите псевдоним

BCDEMOS в их свойствах DatabaseName.

void _fastcall TPormI::DataSource2DataChange(TObject

*Sender, TField *Field) {

// Связь запроса с таблицей ORDERS

установлена? if (Queryl->DataSource != NULL)

return; // да, возврат // Деактивировать предыдущий запрос, если он имел место Queryl->Close() ;

if (!Queryl->Prepared)

Queryl->Prepare(); //

подготовить запрос // Выбрать значение параметра запроса из поля таблицы Queryl->ParamByName("CustNo")->AsInteger =

Tablel->Fields[1]->AsInteger;




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