欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 明星 > Web Broker(Web服务应用程序)入门教程(5)

Web Broker(Web服务应用程序)入门教程(5)

2025/2/26 1:59:58 来源:https://blog.csdn.net/caridle/article/details/143466871  浏览:    关键词:Web Broker(Web服务应用程序)入门教程(5)

1. 在响应中使用数据库信息


HTTP 请求消息的响应可能包括从数据库中获取的信息。Internet 工具面板页上的专门内容生成器可以生成 HTML 表格,以在 HTML 表格中表示数据库记录。

要在 HTTP 响应中返回数据库信息,您通常会:

1.1 向 Web 模块添加会话

控制台 CGI 应用程序是响应 HTTP 请求消息而启动的。在这些类型的应用程序中使用数据库时,您可以使用默认会话来管理您的数据库连接,因为每个请求消息都有自己的应用程序实例。每个应用程序实例都有自己的默认会话。

然而,在编写 ISAPI 应用程序或 NSAPI 应用程序时,每个请求消息都是在单个应用程序实例的单独线程中处理的。为了防止不同线程的数据库连接相互干扰,您必须为每个线程提供自己的会话。

在 ISAPI 或 NSAPI 应用程序中,每个请求消息都会生成一个新线程。该线程的 Web 模块在运行时动态生成。向 Web 模块添加一个 TSession 对象以处理包含 Web 模块的线程的数据库连接。

在运行时,为每个线程生成单独的 Web 模块实例。这些模块中每个都包含会话对象。这些会话必须有自己的名称,以便处理不同请求消息的线程不会干扰彼此的数据库连接。要使每个模块中的会话对象动态生成自己的唯一名称,请设置会话对象的 AutoSessionName 属性。每个会话对象将动态生成自己的唯一名称,并将模块中所有数据集的 SessionName 属性设置为引用该唯一名称。这允许每个请求线程与数据库的所有交互在不干扰任何其他请求消息的情况下进行。有关会话的更多信息,请参见管理数据库会话。

1.2 在 HTML 中表示数据集

Internet 工具面板页上的特殊内容生成器组件根据数据集的记录提供 HTML 命令。有两种类型的数据感知内容生成器:
- 数据集页面生成器,它将数据集的字段格式化为 HTML 文档的文本。
- 表格生成器,它将数据集的记录格式化为 HTML 表格。

1)使用数据集页面生成器

数据集页面生成器像其他页面生成器组件一样工作:它们将包含 HTML 透明标签的模板转换为最终的 HTML 表示。然而,它们包括一个特殊功能,即转换标签名称与数据集中的字段名称匹配的标签为该字段的当前值。有关一般使用页面生成器的更多信息,请参见使用页面生成器组件。

要使用数据集页面生成器,请向您的 Web 模块添加一个 Web.DSProd.TDataSetPageProducer 组件,并将其实体的 DataSet 属性设置为应在 HTML 内容中显示字段值的数据集。创建一个描述您的数据集页面生成器输出的 HTML 模板。对于您想要显示的每个字段值,请在 HTML 模板中包含形式为

```
<#FieldName>
```

的标签,其中 FieldName 指定应显示值的数据集中的字段名称。

当您的应用程序调用 Content、ContentFromString 或 ContentFromStream 方法时,数据集页面生成器将当前字段值替换为代表字段的标签。

2)使用表格生成器

Internet 工具面板页包括两个组件,它们创建一个 HTML 表格以表示数据集的记录:

- 表格生成器,它将数据集的字段格式化为 HTML 文档的文本。
- 查询表格生成器,它在设置由请求消息提供的参数后运行查询,并将结果数据集格式化为 HTML 表格。

使用任一表格生成器,您可以通过指定表格的颜色、边框、分隔线厚度等属性来自定义结果 HTML 表格的外观。要在设计时设置表格生成器的属性,请双击表格生成器组件以显示响应编辑器对话框。

3)指定表格属性

表格生成器使用 Web.HTTPProd.THTMLTableAttributes 对象来描述显示数据集记录的 HTML 表格的视觉外观。THTMLTableAttributes 对象包括表格在 HTML 文档中的宽度和间距属性,以及其背景颜色、边框厚度、单元格填充和单元格间距属性。这些属性都被转换成表格生成器创建的 HTML `<TABLE>` 标签上的选项。

在设计时,使用对象检查器指定这些属性。在对象检查器中选择表格生成器对象,并展开 TableAttributes 属性以访问 THTMLTableAttributes 对象的显示属性。

您也可以在运行时以编程方式指定这些属性。

4)指定行属性

类似于表格属性,您可以指定显示数据的表格行中单元格的对齐方式和背景颜色。RowAttributes 属性是一个 Web.HTTPProd.THTMLTableRowAttributes 对象。

在设计时,使用对象检查器通过展开 RowAttributes 属性来指定这些属性。您也可以在运行时以编程方式指定这些属性。

您还可以通过设置 MaxRows 属性来调整 HTML 表格中显示的行数。

5)指定列

如果您在设计时知道表格的数据集,可以使用列编辑器自定义列的字段绑定和显示属性。选择表格生成器组件,右键单击。从上下文菜单中选择列编辑器。这允许您添加、删除或重新排列表格中的列。在列编辑器中选择它们后,您可以在对象检查器中设置个别列的字段绑定和显示属性。

如果您从 HTTP 请求消息中获取数据集的名称,您无法在设计时在列编辑器中绑定字段。然而,您仍然可以在运行时以编程方式自定义列,通过设置适当的 Web.DBWeb.THTMLTableColumn 对象并使用 Columns 属性的方法将它们添加到表格。如果您没有设置 Columns 属性,表格生成器将创建一个默认的列集,这些列与数据集的字段匹配并指定没有特殊的显示特征。

6)在 HTML 文档中嵌入表格

您可以通过使用表格生成器的 Header 和 Footer 属性将代表您的数据集的 HTML 表格嵌入到更大的文档中。使用 Header 指定表格之前的所有内容,使用 Footer 指定表格之后的所有内容。

您可能想要使用另一个内容生成器(例如页面生成器)来创建 Header 和 Footer 属性的值。

如果您将表格嵌入到更大的文档中,您可能想要为表格添加标题。使用 Caption 和 CaptionAlignment 属性给您的表格添加标题。

7)使用 TDataSetTableProducer

Web.DBWeb.TDataSetTableProducer 是一个表格生成器,它为数据集创建一个 HTML 表格。将 TDataSetTableProducer 的 DataSet 属性设置为指定要显示记录的数据集。您不需要设置 DataSource 属性,就像您在传统的数据库应用程序中为大多数数据感知对象所做的那样。这是因为 TDataSetTableProducer 在内部生成自己的数据源。

如果您的 Web 应用程序始终显示相同数据集中的记录,您可以在设计时设置 DataSet 属性的值。如果您根据 HTTP 请求消息中的信息确定数据集,您必须在运行时设置 DataSet 属性。

8)使用 TQueryTableProducer

您可以生成一个 HTML 表格来显示查询结果,其中查询的参数来自 HTTP 请求消息。将使用这些参数的 Bde.DBTables.TQuery 对象指定为 Bde.DBBdeWeb.TQueryTableProducer 组件的 Query 属性。

如果请求消息是一个 GET 请求,查询的参数来自作为 HTTP 请求消息目标的 URL 的查询字段。如果请求消息是一个 POST 请求,查询的参数来自请求消息的内容。

当您调用 TQueryTableProducer 的 Content 方法时,它使用请求对象中找到的参数运行查询。然后,它格式化一个 HTML 表格以显示结果数据集中的记录。

像任何表格生成器一样,您可以自定义 HTML 表格的显示属性或列绑定,或将表格嵌入到更大的 HTML 文档中。
 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词