Главная » Delphi » Активные объекты сервера и поддержка NetCLX

0

Если сравнить активные объекты сервера с архитектурой NetCLX,  то нельзя  не за метить множества совпадений. И  те,  и другие  используют  объекты Request и Re- sponse в качестве основного средства обмена  данными с клиентами. Но,  с точки  зре ния разработчика, NetCLX  получает большую поддержку  со стороны компонентов PageProducer и TableProducer, которые были  написаны специально для исполь зования  внутри   Web модулей.   К  счастью,  область   применения  этих   компонентов (генераторов HTML)  не ограничивается модулями  Web; их можно  применять везде, где необходимо динамически создать  объект класса  TDataSetTableProducer, на значить ему набор  данных  и передать полученный в результате HTML  обратно, ис пользуя  метод  Response.Write. Компонент TDataSetTableProducer можно  пере нести  в создаваемый модуль данных и даже настраивать его во время  разработки!

Фактически, применение в составе  активного объекта сервера компонентов, гене рирующих код HTML  и написанных первоначально для NetCLX,  не составляет особой сложности. Единственным исключением являются компоненты TQueryTablePro- ducer и TSQLQueryTableProducer, которые на самом деле ожидают на входе объект Request NetCLX,  а не одноименный объект ASP. Весе остальные генераторы страниц применяются в исходном состоянии, что и демонстрирует следующий пример.

Перенесите компонент TDataSetTableProducer в модули  данных  и  назначьте его свойству  DataSet значение ClientDataSet, использованное в предыдущем при мере.  Чтобы настроить параметры компонента DataSetTableProducer, удостове ритесь, что компонент ClientDataSet содержит реальные данные. Обычно свойст во  Active компонента ClientDataSet временно  устанавливают в состояние True (впоследствии ему возвращают значение False). Щелкните на кнопке с многоточием рядом   со  свойством Columns компонента DataSetTableProducer (или,   щелкнув правой кнопкой мыши  на  самом  компоненте DataSetTableProducer, выберите  в появившемся контекстном меню пункт Response Editor), что позволит вывести на эк ран окно редактора свойства Columns, показанного на рис. 22.12.

Вернемся к  методу  Welcome. Вызов  метода   DataSetTableProducer.Content,

представленный  в  листинге 22.8,  позволяет  осуществить  динамический  вывод  необ

ходимого HTML (это существенно короче и намного проще самостоятельной органи

зации аналогичного вывода).

Листинг 22.8. DrBob42ASP — исходный  код активного объекта сервера

procedure TDrBob42.Welcome;

var

Str: String;

DM: TDataModuleASP;

begin

Str := Request.Form.Item[‘Name’]; Response.Write(‘Hello, ‘+Str+’!’); Response.Write(‘<P>’);

Response.Write(‘Welcome to Delphi 6 and ASP Objects’);

try

Response.Write(DM.DataSetTableProducer1.Content);

finally

DM.Free

end

end;

После  перекомпиляции нового активного объекта сервера и перезагрузки файла DrBob42.htm, что позволяет обновить активную  страницу, можно  увидеть результат, показанный на рис. 22.13.

Рис. 22.12. Компонент DataSetTableProducer в окне Response Editor

Рис. 22.13. Результат выполнения DrBob42.asp NetCLX в окне Internet Explorer

Источник: Тейксейра, Стив, Пачеко, Ксавье.   Borland Delphi 6. Руководство разработчика. : Пер.  с англ. — М. : Издательский дом “Вильямс”, 2002. —  1120 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии