Технология разработки web-приложений, страница 21

Создадим приложение для работы с учебной базой данных Zgrad.

1. Создайте CGI-приложение на основе компонента TWebModule.

2. Поместите в форму WebModule1 компонент TQuery с именем Query1 и компонент TQueryTableProducer с именем QueryTableProducer1.

3. Для компонента Query1 установите свойство DatabaseName=Zgrad, а в свойстве SQL задайте оператор языка SQL для БД Zgrad.

4. Для компонента QueryTableProducer1 установите свойства Caption, Header, Footer, задающие на языке HTML вывод поясняющего текста к таблице БД.

5. Откройте окно редактора столбцов HTML-таблицы двойным щелчком по компоненту QueryTableProducer1. Включите в HTML-таблицу все столбцы, нажав кнопку Add All Fields на панели инструментов редактора столбцов.

6. Откройте окно редактора действий компонента TWebModule и создайте новое действие. Задайте следующую процедуру обработки события OnAction для созданного действия, которая вставляет в ответ сервера результат выполнения SQL-запроса, представленный свойством QueryTableProducer1->Content:

void __fastcall TWebModule1::WebModule1WebActionItem1Action(

      TObject *Sender, TWebRequest *Request, TWebResponse *Response,

      bool &Handled)

{

   Response->Content = "<HEAD><TITLE>";

   Response->Content += "Пример использования TqueryTableProducer";

   Response->Content += "</HEAD></TITLE>";

   Response->Content += QueryTableProducer1->Content();

}

7. Оператор, выполняющий SQL-запрос, поместим в процедуру обработки события OnCreate компонента TWebModule, а оператор, подготавливающий компонент Query к изменению свойства SQL (к записи нового SQL-запроса), поместим в процедуру обработки события OnDestroy компонента TWebModule:

void __fastcall TWebModule1::WebModuleCreate(TObject *Sender)

{

   Query1->Open();

}

void __fastcall TWebModule1::WebModuleDestroy(TObject *Sender)

{

   Query1->Close();

}

8. Откомпилируйте приложение под именем WebModDB и скопируйте его исполняемый модуль на устройство W.

9. Подготовьте HTML-документ для проверки работоспособности CGI-приложения и осуществите эту проверку.