Cfinsert我们讲解完了,那么作为作者本人,不是非常推荐使用Cfinsert,如果要做大量的数据库的插入,我希望各位开发人员能够灵活的使用cfquery而不是cfinsert。下面我们讲解一下cfupdate这个标签。单击图标 ,会出现如下的界面:

各位可能看到cfupdate的窗口设置和cfinsert的很类似,是的,这两个Tag都是对于Form表单进行专属操作的标签。对于cfupdate的使用方法,作者这里不想多费笔墨,它的使用和cfinsert几乎是一样的,同样,我们用一段程序来看看cfupdate的作用。
程序使用了官方的一段脚本 < !--- 使用cfupdate更新数据库 ---> < !--- 检测course_ID这个值,如果存在则更新数据记录---> < cfif IsDefined("form.Course_ID")> < !--- 检测Course_ID是不是一个数字 ---> < cfif Not IsNumeric(form.Course_ID)> < cfabort> < /cfif> < !---做更新---> < cfupdate datasource="cfsnippets" tablename="Courses" formfields="Descript, Course_ID"> < /cfif> < !--- 使用一个query来查看通过url传过来的course_ID是否在对应的记录上做了更新,各位开发人员可以使用这种查询的技巧来验证数据库是否更新,而不用打开数据库去查看---> < cfquery name="GetCourseInfo" DATASOURCE="cfsnippets"> SELECT Number, Course_ID, Descript FROM Courses < cfif IsDefined("url.Course_ID")> WHERE Course_ID = #Trim(url.Course_ID)# < /cfif> ORDER by Number < /cfquery> < html> < head> < title>CFUPDATE </title> < /head> < body> < H3>cfupdate更新实例</H3> < cfif IsDefined("url.Course_ID")> 课程号:<cfoutput>#GetCourseInfo.Number#</cfoutput> < form method="post" action="cfupdate.cfm"> < P>课程描述<BR> < textarea name="Descript" cols="40" rows="5"> < cfoutput>#Trim(GetCourseInfo.Descript)#</cfoutput> < /textarea><br> < input type="Hidden" NAME="Course_ID" value="<cfoutput>#Trim(GetCourseInfo.Course_ID)#</cfoutput>"> < p><input type="Submit" value="Click to Update"> < /form> < cfelse> < cftable query="GetCourseInfo" htmltable colheaders> < cfcol text="<a href='cfupdate.cfm?Course_ID=#Trim(Course_ID)#'>Edit Me</a>" width=10 header="Edit<br>this Entry"> < cfcol text="#Trim(Number)#" WIDTH="4" HEADER="Course Number"> < cfcol text="#Trim(Descript)#" WIDTH=100 HEADER="Course Description"> < /cftable> < /cfif> < /body> < /html>
上面这段程序是官方的一段标准的使用cfupdate的代码,其中包括了检测从url传递过来的参数,以及对传递参数course_ID所在的数据库的记录进行更新的操作。这个程序非常精辟,希望各位开发者能够很好的研究。其中,第一次访问不带参数而显示一个记录级的方法都非常的实用,可以用在实际的开发当中。在这里,作者从本人的开发经验再次提出一个建议,建议大家在实际的开发当中对于经常操作数据库的程序编写时,能不用cfinsert和cfupdate就不用,因为这两个tag虽然方便,但是是牺牲了灵活性和效能来取得的。希望大家使用cfquery来进行数据库的查询,插入和更新。
好了,下面我们轻松一下,讲解两个非常容易看懂的tag,这两个tag在大家进行开发的过程中使用的频率也是很高的。一个是cfinclude,另一个是cflocation。
单击中的左边的图标 ,就会使用coldfusion中的cfinclude标签,并弹出如下的窗口:

这个标签就是用来在coldfusion的某个页面中反复使用其他的页面模板,它与asp中的include的作用几乎是一样的。比如在coldfusion要嵌入一个站点统一标准的页眉和页脚,一个是header.cfm,另一个是footer.cfm,那么,就可以使用cfinclude来实现。
<cfinclude template="header.cfm">
使用cfinclude也有缺点,随着企业应用的不断发展,业务逻辑和表现两者需要进行分离的要求越来越高,那么我们就需要进行组件的设计,这样,完全混合逻辑和表现的cfinclude标签就不是很适用了,但是目前的coldfusionMx有了它最新的cfc(coldfusion components),使用这个方法可以达到逻辑与表现的抽离。但是cfinclude的优点也是具有的,就是同cf component一样可以一次性的修改页面代码来完成site中的所有引用,另外,cfinclude还可以包含很多的application和session的方法。
单击上面两个图标中右边的图标,就是使用coldfusion的另外一个tag,cflocation。这个标签起到了一个页面跳转的作用,它经常与cfabort使用。比如我们做一个用户验证的程序,当进行一些判断之后,发现用户并不拥有权限,那么就需要把他自动送回到首页或者某个页面,这个时候,我们就要使用cflocation这个标签,例如:
<cfif form.registername EQ “”> < cflocation url="http://www.macromedia.com" addtoken="No"> < cfabort> < /cfif>
那么我们在DreamweaverMX使用cflocation的时候,看到的设置窗口如下:

最后,我们要进行一下coldfusionMx中的函数说明,coldfusionMX中的函数分为15类,包括Array, Authentication,Conversion,Date/Time,Decision,Display and Formatting,Dynamic Evaluation,International,List,Mathematical,Query,String,Structure,System,XML,Other十五个种类。这些分类包括了256个coldfusion函数,应该可以满足开发应用的需求,而且各位也还可以自己组合定义自己的function和component来使用,这样就可以满足开发的需要了。作者在这里不介绍Function的单独应用了,以后会在教程中随着程序说明一些常用的funtions。如果开发者在使用上有困难或者不明白使用的方法,可以去这个地方查看Functions的应用和示例:
http://examples.macromedia.com/coldfusion/examples/index.cfm
好了,这期的教程就讲到这里,下一期,我们讲解coldfusion中重要的cf Flow也就是循环。下期见!!!
出处:
责任编辑:蓝色
上一页 ColdFusionMX Basic Tag编程 续一 下一页
◎进入论坛网络编程版块参加讨论
|