万卷书   首页 > 电脑书籍 > 网站设计其它 > Macromedia ColdFusionMX 开发者(3-5)
 
第三期:
ColdFusionMX Basic Tag编程之二

第一部分 Basic tag编程深入

   上一期我们讲了操作数据库的第一个重要的标签,cfquery。但是我们只是讲解了如何使用cfquery进行数据库的查询,现在我们深入讲解一下cfquery的作用,然后在来讲解另外两个操作数据库的标签cfinsert和cfupdate。

   先来看看cfsnippets这个数据库中employees这个表的构造。

   随着教程的深入,代码的编写采用verdana字体的8号,并且使用篮色,请学习者注意。

   我们可以使用cfquery来做数据的插入,编写的形式非常的简单,代码的方式如下:

< CFTRANSACTION >
< CFQUERY NAME="test" DATASOURCE="cfsnippets" >
Insert Into Employees(FirstName,lastname,email,phone,department)
Values('Mj','king','mjking@263.net','1234567','Technical')
< /CFQUERY >
< CFQUERY NAME="test" DATASOURCE="cfsnippets" >
Select MAX(Emp_id) as number_id
From Employees
< /CFQUERY >
< /CFTRANSACTION >

插入数据成功!
你新插入的id是:

< cfoutput query="test" >#number_id#< /cfoutput >

   下面我们来讲解一下上面的这一段代码,其中最主要的部分是应用了两个cfquery的标签的组合,实现了数据插入和最新插入的员工id的查询。其中第一个cfquery插入了一组记录到Employees这个table里去,除了没有处理emp_id这个默认的员工id的自增主键之外,其他的几个字段都对应给予了插入。在插入之后,第二个cfquery做的是将刚刚插入的记录的emp_id给查询出来。比如我们要开发一个内部网的员工模块,有可能在做了新员工的输入之后,马上系统要告知该员工的工号,就可以采用这种方式。但是会有一个问题,如果你在请求server做insert的同时,有另外一个人正好刚刚做完insert,正要查询出他的id,这样有可能查出的id是你的,因为这时候,系统有可能响应给对方你刚做完insert的记录的emp_id的值。为了避免这样的现象发现,我们在两个cfquery之外使用了Cftransaction这个标签。

   Cftransaction是一个协调事务处理的标签,它把处理不同事务的作为一个整体,如果其中的某一个操作不成功,那么所有的操作都会被服务器还原(就是roll back),有这样的功能真的是太好了。

   另外,使用cfquery还可以进行数据库的update,让我们来看下面的代码:

< Cfparam name="URL.number_id" default="20" >< Cfquery name="test" datasource="cfsnippets" > Select emp_id From Employees Where emp_id=#URL.number_id#< /Cfquery >< cfoutput >#test.emp_id#< /cfoutput >< cfoutput >#test.recordcount#< /cfoutput >< Cfif test.RecordCount EQ 0 > 没有这个员工记录 < Cfabort >< /Cfif >

< !--- 进行数据库更新 --- >< Cfquery name="test" datasource="cfsnippets" > Update Employees Set FirstName='Zerlot', LastName='Ma', email='zerlot.ma@hdtworld.com', phone='7654321' department='market' Where emp_id=#URL.number_id#< /Cfquery >< cfoutput >更新成功!< /cfoutput >


 
下一页