ColdFusion模拟查询的多种用途

ZDNet软件频道 时间:2003-05-28 作者:BUILDER.COM |  我要评论(9)
本文关键词:
ColdFusion标示语言(CFML)包含了一组用于创建、填充和操控你自己查询结果集的函数。本文除了向你演示如何创建模拟数据集之外,我还会给你一些例子,它们是一些很有用但是却不常见的技巧。
本文译自Builder.com,未经许可请勿转载和任何现代Web应用服务器一样,ColdFusion允许你查询数据库并取回数据。和许多Web应用服务器不同的是,CF让数据库的查询和数据的取回变得极其容易。只需要编写一些SQL并把代码放进能够接纳你SQL的<cfquery>标签里,再把它送到数据库就行了,结果就会返回一个查询结果集,这样你就可以把这个结构集用在自己的应用程序里。但是,这不是创建查询结果集的唯一方法。

ColdFusion标示语言(ColdFusion Markup Language,CFML)包含了一组用于创建、填充和操控你自己查询结果集的函数。你甚至可以在没有数据库的情况下创建人工的模拟数据集。除了向你演示如何创建模拟数据集之外,我还会给你一些例子,它们是一些很有用但是却不常见的技巧。

用<cf_querysim>来模拟查询

ColdFusion的查询结果集同数组和结构相关。你可以把它们概念化为一个网格(grid),它的顶行带有列的名称,行号在第一列里依次向下排列,数据值被填充在网格的其他部分里。你可以使用ColdFusion用来创建查询结果集的CFML函数来定义你自己的结果集、对它命名、设置列的名称、添加行,并用数据来填充它。

但是这些函数很难使用,所以一些聪明的开发人员将这个结果集创建逻辑封装进了一个免费的自定义CF标签里,叫做<cf_querysim>,你可以在这里下载Listing A包含了一个使用普通标签来构造模拟查询结果集(也就是我后面要用到的querysim)的例子。

正如你所看到的,其句法非常简单。在标签集里,第一行用来设置查询的名称,第二行以逗号分隔列表的形式给列命名。后面的几行为(网格的)每一行提供数据值,每个单元格(cell)都用管线标志分隔开。如果你只定义名称和列,那么最终得到的会是一个空的结果集。

运用querysim来重新使用表单

有一个函数对于大多数Web应用程序来说是很常见的,它允许用户通过HTML的表单来添加、编辑和删除数据库的数据。你可以使用代码来创建这样的表单,就像Listing B的一样,它会在数据库里查找匹配的用户,如果没有匹配的记录,就会输出空值或者缺省的值。

即使是在这个只有三个字段的简单例子里,你也可以看到有很多条件检查。在你处理新的记录或者空的记录时,如果你想要为一些字段定义缺省的值,情况就会更复杂。

下面的内容对querysim来说是个好消息,它会让你清除掉所有的条件逻辑,这正如你会在Listing C里看到的那样。这一次,我只需要一个条件检查,就在<cf_querysim>标签之前。如果数据库里没有匹配的记录,我就会用缺省的值创建一个结果集。这个表单本身不需要任何条件逻辑来检测空的结果集和显示缺省的数据。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134