Публикация данных с использованием классов TQUERYTABLEPRODUCER и TDATASETTABLEPRODUCER
Для публикации данных из базы данных на HTML-страницы можно использовать следующие классы:
- TQueryTableProducer - для создания HTML-страницы, содержащей таблицу с данными, являющимися результатом выполнения SQL-запроса. Параметры выполняемого SQL-запроса передаются в HTTP-запросе.
- TDataSetTableProducer - для создания HTML-страницы, содержащей таблицу с данными из сформированного набора данных.
Компонент типа TDataSetTableProducer при формировании HTML-страницы, как правило, обрабатывает следующие события:
- OnCreateContent - при создании содержимого HTML-страницы;
- OnFormatCell - при формировании содержимого отдельной ячейки таблицы;
- OnGetTableCaption - при получении заголовка создаваемой таблицы.
Для того чтобы создать серверное приложение, отображающее на HTML-странице поля таблицы базы данных, следует:
- Создать новое приложение, запускаемое на web-сервере (команда меню File|New|Other, пиктограмма Web Server Application), и выбрать тип создаваемого приложения.
- Для реализации доступа к источнику данных расположить в web-модуле компонент набора данных Table (или компонент Query) со страницы BDE палитры компонентов. Установить значение свойств компонента Table1 (DatabaseName и TableName).
- Двойным щелчком мыши в web-модуле на компоненте Table1 вызвать редактор полей и определить поля, которые будут включены в результирующий набор (для компонента Query - сформировать значение свойства SQL).
- Разместить в web-модуле компонент DataSetTableProducer со страницы Internet палитры компонентов.
- Для определения связи с источником данных установить значение свойства DataSet компонента DataSetTableProducer1 равным Table1, выбрав значение из предлагаемого списка.
- Свойство Caption компонента DataSetTableProducer1 можно использовать для определения заголовка, отображаемого перед таблицей. Для формирования начальных и завершающих тегов HTML-страницы используются значения свойств Header и Footer. Содержание самой таблицы определяется свойством Columns.
- Следует определить начальные теги формируемой HTML-страницы, введя в свойство Header следующие строки: <HTML> <HEAD> <TITLE> Запрос данных из таблицы </TITLE> </HEAD> <BODY>
Тег BODY открывает область, в которой размещается отображаемое содержимое HTML-страницы. - Следует определить завершающие теги формируемой HTML-страницы, введя в свойство Footer следующие строки: </BODY> </HTML>
Далее можно вызывать редактор свойства Column. Для этого или в инспекторе объектов выполните двойной щелчок мышью на значении свойства Column компонента DataSetTableProducer1, или в web-модуле выполните двойной щелчок мышью на компоненте DataSetTableProducer1.
Для добавления всех столбцов в диалоге Editing.DataSetTableProducer1.Columns выполните команду контекстного меню Add All Fields. Каждый добавленный столбец может быть доступен как DataSetTableProducer1.Columns[номер_столбца_начиная_с_0].- Для определения элемента действия для web-модуля выполните двойной щелчок мышью на компоненте WebModule1 и в диалоге Editing WebModule1.Actions добавьте новый элемент действия (кнопка Add New).
- Для добавленного объекта действия WebActionItem1 следует создать обработчик события OnAction и ввести в него код, определяющий значение свойства Content объекта ответа. Например: Response.Content:= DataSetTableProducer1.Content; Свойство Content объекта DataSetTableProducer1 содержит текст сформированной таблицы с соответствующими HTML-тегами.
Сформированная HTML-страница будет отображать таблицу с набором данных, который определен компонентами Table и DataSetTableProducer.
Тег BODY открывает область, в которой размещается отображаемое содержимое HTML-страницы.
Далее можно вызывать редактор свойства Column. Для этого или в инспекторе объектов выполните двойной щелчок мышью на значении свойства Column компонента DataSetTableProducer1, или в web-модуле выполните двойной щелчок мышью на компоненте DataSetTableProducer1.
Для добавления всех столбцов в диалоге Editing.DataSetTableProducer1.Columns выполните команду контекстного меню Add All Fields. Каждый добавленный столбец может быть доступен как DataSetTableProducer1.Columns[номер_столбца_начиная_с_0].
Сформированная HTML-страница будет отображать таблицу с набором данных, который определен компонентами Table и DataSetTableProducer.