
- •1. Компоненты, используемые при разработке Web-приложений
- •2. Статическая публикация
- •3. Компоненты генерации html-страниц
- •3.1. Компонент PageProducer
- •3.2. Компонент DataSetPageProducer
- •3.3. Компонент DataSetTableProducer
- •Var Align: thtmlAlign; var vAlign: thtmlvAlign; var CustomAttrs,
- •3.4. Компонент QueryTableProducer
- •3.5. Пример генератора html-страниц
- •Var ReplaceText; String); procedure PageProducerlHtmlTag(Sender: tObject; Tag: tTag;
- •Var ReplaceText: String); procedure DataSetTableProducerlFormatCell(Sender: tObject; CellRow,
- •Var Align: thtmlAlign; var vAlign: thtmlvAlign; var CustomAttrs, f
- •Var Align: thtmlAlign; var vAlign: thtmlvAlign; var CustomAttrs,
- •4. Динамическая публикация
- •4.1. Создание модуля cgi
- •II:integer;
- •Var I: integer;
- •Var I: integer;
- •Var I: integer;
- •4.2. Создание isapi-модуля расширения сервера
- •4.3. Обработка ввода пользователя в модуле isapi
- •5. Публикация графики
- •Interface
- •Var Align: thtmlAlign; var vAlign: thtmlvAlign; var CustomAttrs,
- •6. Использование интерфейса ado
3.4. Компонент QueryTableProducer
Компонент QueryTableProducer отличается от компонента DataSetTableProducer наличием свойства Query типа TQuery, которое используется для выполнения SQL-запроса к базе данных.
3.5. Пример генератора html-страниц
В примере выполняется формирование статического HTML-документа, аналогичного документу из раздела "Статическая публикация"данной главы. Однако здесь генерация документа происходит с использованием стандартных компонентов Delphi. На форме находятся четыре кнопки, имеющие имена GenPageProducer,
GenDataSetPageProducer, GenTableProducer, GenQueryTableProducer и служащие для генерации HTML-документа с помощью размещенных на форме
Компонентов PageProducer, DataSetPageProducer, DataSetTableProducer и QueryTabieProducer, соответственно. Для отображения сформированной HTML-страницы в браузере служит кнопка с именем showHtmi. На форме также размещены многострочный редактор Memol и наборы данных Tabiei и Queryi.
В качестве источника данных для компонентов DataSetPageProducer и GenTabieProducer используется набор данных Tabiei, связанный с этими компонентами через их свойство DataSet.
Свойству htmldoc компонента PageProducer в качестве значения установлен следующий текст:
<ТIТLЕ>Демонстрация возможностей PageProducer </TITLE>
</HEAD><BODY>
<Н1> Демонстрация PageProducer </Hl>
Эта страница демонстрирует возможности PageProducer <p>
Имя базы данных <b> <#dbname> </b>
Дата: <b> <#date> </b>. <p>
<hr>
</BODY></HTML>
При формировании HTML-документа (методом content) теги-транспаранты <#dbname> и <#date> в этом шаблоне будут заменены на конкретные значения.
Значением свойства htmldoc компонента DataSetPageProducer является следующий текст:
HTML> <HEAD>
<TITLE> Данные из файла <#dbname> </TITLE>
</HEAD> <BODY>
<H1> <CENTER> Данные из файла <#dbname> </CENTER> </Hl>
Данные первой записи из БД <br>
Имя: <#name> <br>
Размер: <#size> <br>
Вес: <#weight> <br>
Место: <#area> <br>
Дата: <#date> <br>
</BODY> </HTML>
Здесь теги-транспаранты <#dbname>, <#name>, <#size>, <#weight>, <#area> И <#date> при формировании HTML-документа также будут заменены на конкретные значения полей БД.
В качестве источника данных для компонента QueryTabieProducer используется набор данных Queryi, связанный с этим компонентом через свойство DataSet последнего. Свойству sql объекта Queryi, используемому для хранения SQL-запроса к БД, необходимо задать значение, которое обеспечит получение требуемых данных. В рассматриваемом примере свойство sql объекта Queryl содержит следующий запрос:
SELECT * FROM Authors
WHERE YearBorn > 1960
Ниже приведен код модуля DBHForm главной формы HTMLForm приложения:
unit DBHForm; interface
uses
SysUtils, Windows, Messages, Classes, Graphics,
Controls, Forms, DBCtrls, StdCtrls, DBTables,
ExtCtrls, Mask, Db, Dialogs, HTTPApp, DSProd, DBWeb;
type
THTMLForm = class(TForm) ShowHtml: TButton; GenPageProducer: TButton; GenDataSetPageProducer: TButton; GenTableProducer: TButton; GenQueryTableProducer: TButton; Memol: TMemo;
PageProducerl: TPageProducer; DataSetPageProducerl: TDataSetPageProducer; DataSetTableProducerl: TDataSetTableProducer; QueryTableProducerl: TQueryTableProducer; Tablel: TTable; Queryl:TQuery;
procedure FormCreate(Sender: TObject); procedure GenPageProducerClick(Sender: TObject); procedure GenDataPageProducerClick(Sender: TObject); procedure GenTableProducerClick(Sender: TObject); procedure GenQueryTableProducerClick(Sender: TObject); procedure ShowHtmlClick(Sender: TObject); procedure DataSetPageProducerlHTMLTag(Sender: TObject; Tag: TTag;
const TagString: String; TagParams: TStrings;