点击cfquery标签之后dwmx出现的界面是这样的:
上图就是关于设置cfquery的窗口,图形左边的红色矩形内的三个部分可以对cfquery进行不同细节程度的设置,general是我们最长用到的设置,connection则是连接设置,一般connection的部分属性直接就可以通过cfmx administrator中的datasource设定来确定了。Persistent Queries表示设定一个持续的可以从缓存里调用的查询。下面是cfquery的标准语法:
其中,name属性是必须要有的,就是给你定义的cfquery一个名字,以后其他地方要调用的时候就会用到这个name属性值找到相对的query。Datasource则是该查询来自的数据源的名称,而数据源的名称则是通过设定cfmx administrator的。这里有必要插入一段关于设置数据源的方法。打开cfmx administrator管理界面,点击Data & Services里的data Sources,然后看到管理界面的右侧区域出现cfmx administrator已经定义好了的数据源,截图如下:
上图表示1的部分数据库driver用的是microsoft access,而被2框选的部分则是两个透过windows odbc设置的数据源名称,数据驱动用的是windows的odbc socket。而被3框选中的区域则是使用Microsoft SQL Server驱动定义的数据源。设置access数据库是一件非常容易的事情,首先你的access数据库可以放在你本地硬盘的任何一个位置,并不是非要放在webserver的某个目录之下,然后,从上图中,可以从add new data source中填写一个你想要的数据源名称,名称只要是标准的字符串就可以了,不能用数字开头。然后,从Driver的下拉选项中,选择Microsoft access这个驱动,然后点击add,就进入了详细设置页面:
基本上,设置access数据库不需要设置什么高级选项,但是如果有需要,比如限制对数据库的操作等等,可以点击show advanced settings来修改。上图中的cfsnippets就是安装完coldfusionmx后的默认案例数据库,就像装完access这个软件后,自动就有northwind这个库一样。下面的cfquery例子我们就以cfsnippets为主。而sql server只是多加了几步的设置,首先,在设置sqlserver的数据源时要填入sql server的database name,其次,要输入sql server所在的ip,本机就用localhost就可以,最重要的是,必须输入一个能够有访问该数据库的权限的用户名和密码,作者这里推荐在sql server里设置好特定的用户名和密码,而不是使用默认的sa帐号。
回到cfquery属性说明,其他的属性则不是必须具备的属性。关于属性的说明可以参考coldfusionMx自带的reference 手册。
让我们来看一段简单的cfquery的代码:
<CFQUERY NAME="test" DATASOURCE="cfsnippets"> SELECT * FROM Employees ORDER BY Emp_ID < /CFQUERY> < cfoutput query="test"> #Emp_ID# | #FirstName# | #LastName# | #EMail# | #Phone# | #Department# <br> < /cfoutput>
结果是什么?看看下面的截图:
令人惊奇的是可以循环输出!!!数数cf代码,只有几行,而asp,jsp,php要完成同样的效果,需要写几行代码呢?想必用过的人都知道。
再来看一个复杂点的cfquery代码:
<cfquery name="queryname" datasource="cfsnippets"> SELECT * FROM Employees WHERE LastName = 'Peterson' < /cfquery> < cfoutput>#queryname.FirstName# <br> #queryname.LastName# <br> #queryname.Department# <br> #queryname.recordcount# <br> #queryname.currentrow# <br> #queryname.columnlist# < /cfoutput>
<cfquery Name="queryname" datasource="cfsnippets"> SELECT * FROM Employees < /cfquery> < table border="1"> < tr> < td> Last Name </td> < td> First Name </td> < td> Department </td> < /tr> < cfoutput query="queryname"> < tr> < td>#LastName#</td> < td>#FirstName#</td> < td>#Department#</td> < /tr> < /cfoutput> < /table>
那么结果如下截图:
我们首先是select出一段关于perterson这个雇员的相关信息,然后再列出所有雇员的信息。其次是用queryname.recordcount查看符合的记录数,用queryname.currentrow查看当前的记录是在数据库中的第几条,用queryname.columnlist表示数据库的列的一个排序。最后我们还看到,几行的代码让整个雇员表中的数据在html table中循环输出,是不是各位已经感觉到coldfusion的简单快捷了?以后的教程中还有更令人吃惊的功能,包括内置的全文检索引擎,Generator的Data Driven flash(image),cf component和web services等功能的讲解。
下一期的教程接着为大家讲解cf basic tag编程,包括操作数据库的cfinsert,、cfupdate;cfinclude和cflocation标签的使用,还要讲解如何编写coldfusion founction。好了,各位,咱们下一期见。
出处:
责任编辑:蓝色
上一页 ColdFusionMX Basic Tag编程 一 下一页
◎进入论坛网络编程版块参加讨论
|