您的位置: 首页 > 技术文档 > 网络编程 > ColdFusionMX 编程指南 第四期
Cfmx 中文问题解决方法 回到列表 ColdFusionMX 编程指南 第三期
 ColdFusionMX 编程指南 第四期

作者:MJking 时间: 2003-08-30 文档类型:原创 来自:

第 1 页 ColdFusionMX Basic Tag编程 续一
第 2 页 ColdFusionMX Basic Tag编程 续二

ColdFusionMX Basic Tag编程之二

版权所有 请勿转载:

系统及环境需求:

  •  Window2000/XP
  •  256M RAM
  •  Coldfusion MX(Developer Edition)
  •  Microsoft Access
  •  任何一款文本编辑器(本教程默认为Coldfusion Studio 5 + DreamweaverMX)
  •  本教程采用 Coldfusion Standalone的模式,端口为8500。如需要采用IIS捆绑方式,请在安装过程中修改即可。

序言

  今天要讲一下Coldfuison5和coldfusionMX的基本区别。Coldfusion5以前的版本(包括coldfusion5)还是一个以编程脚本为主的语言,这种语言提供了由特定的coldfusion server来进行脚本解释和程序维护的功能,Coldfusion5以前的版本核心是不具备J2EE体系核心的。ColdfusionMX我们在第一期的教程中就知道了它是基于J2EE的核心基础架构,在此之上,具备了一些内置的功能强大的企业开发包和Tag集合,其中包括了整合了Generator部分功能的最新的cfchart,这个新标签能够解决在开发企业应用时最重要的报表图形的生成功能,此外还包括了一个完全版的全文搜索引擎,融合了新的开发方式的cf component以及web services的支持。所以,我们可以把coldfusion5到coldfusionmx看作是一次飞跃。一次从单纯的脚本环境到企业级应用的飞跃。

  另外,coldfusionMX里面有很多的变化,类似于flashMX的action一样,有很多tag从coldfusion5演变到coldfusionMX之后就有一些属性发生了变化,如果不了解这些变化,硬把coldfusion5编写的程序往MX上套,是会出错的。好了,那我们开始这一期的教程。

第一部分 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>

  好,我们使用cfquery做成功了insert和update,那么下面我们开始讲解cfinsert和cfupdate这两个标签。

  在开始讲解之前,我们将简要说明一下access操作中文的问题,目前从access数据库中把中文显示出来还没有解决方案,至少到2002年7月还没有。但是,进行access数据库的插入已经可以解决了,解决方式如下:

  在你的应用根目录下建立一个application.cfm文件,加入下面这行代码:

<cfcontent type="text/html; charset=gb2312">

  在你的每一个cfm页面模板的开头加入下面代码:

<cfcontent type="text/html; charset=gb2312">
< cfset setEncoding("URL", "gb2312")>
< cfset setEncoding("Form", "gb2312")>

  然后使用form表单或者cfquery进行插入中文就没有问题了。但是从access中查询并显示某一条中文记录还是有问题,目前作者还没有确切的方法。所以作者本人的教程使用access是出于简单,但是如果是开发者使用cfmx来开发应用的话,劝各位使用sqlserver和oracle的企业数据库,这些数据库都没有什么问题。

  Cfinsert和cfupdate是coldfusion中两个常用的tag,通过点击DreamweaverMX中CFbasic的两个图标来操作它们。

  点击图标,将执行cfinsert这个标签的设定功能。点击后的窗口如下所示:

  以上经常用到的属性是datasource、tablename和Formfields三个属性,其中datasource是你在coldfusion administrator数据源设定中设置好的名称,tablename是要更新的表,Formfields是和数据库表中字段对应名称一致的form控件名称(注意必须一致才行)。我们看下面的列子:

<!--- 下面的代码使用了cfinsert更新了数据表格,没有使用cfquery--->
< !--- 如果表单有提交的动作,那么开始处理cfinsert动作--->
< cfif IsDefined ("form.posted")>
< cfinsert dataSource = "cfsnippets"
tableName = "Comments"
formFields = "Email,FromUser,Subject,MessText,Posted">
< h3><I>你的记录已经被提交。</i></h3>
< /cfif>
< !--- 使用cfquery显示插入数据 --->
< cfquery name = "GetComments" dataSource = "cfsnippets">
SELECT
CommentID, EMail, FromUser, Subject, CommtType, MessText, Posted, Processed
FROM
Comments
< /cfquery>
< html>
< head></head>
< h3>cfinsert</h3>
< !--- 显示数据 --->
< table>
< tr>
< td>From User</td><td>Subject</td><td>Comment Type</td>
< td>Message</td><td>Date Posted</td>
< /tr>
< cfoutput query = "GetComments">
< tr>
< td valign = top><a href = "mailto:#Email#">#FromUser#</A></td>
< td valign = top>#Subject#</td>
< td valign = top>#CommtType#</td>
< td valign = top><font size = "-2">#Left(MessText, 125)#</font></td>
< td valign = top>#Posted#</td>
< /tr>
< /cfoutput>
< /table>
< p>Next, we’ll offer the opportunity to enter a comment:
< !---输入表单--->
< form action = "cfinsert.cfm" method = "post">
< pre>
Email: <input type = "Text" name = "email">
From: <input type = "Text" name = "fromUser">
Subject:<input type = "Text" name = "subject">
Message:<textarea name = "MessText" COLS = "40" ROWS = "6"></textarea>
Date Posted: <cfoutput>#DateFormat(Now())#</cfoutput>
< !---动态显示时间--->
< input type = "hidden"
name = "posted" value = "<cfoutput>#Now()#</cfoutput>">
< /pre>
< input type = "Submit"
name = "" value = "insert my comment">
< /form>

那么我们执行的结果可以看到浏览器显示了我们刚刚输入的信息,这里作者就不给出截图,目的是让大家自己去执行,自己去查看结果,注意,本数据库为access,应用程序不支持中文,如果各位想测试中文,可以构建自己的应用程序来测试中文(使用sqlserver),只须在每个页面的开头中加入如下代码即可:

<cfprocessingdirective pageencoding="gb2312">
< cfcontent type="text/html; charset=gb2312">
< cfset setEncoding("URL", "gb2312")>
< cfset setEncoding("Form", "gb2312")>

出处:
责任编辑:蓝色

上一页 下一页 ColdFusionMX Basic Tag编程 续二

◎进入论坛网络编程版块参加讨论

相关文章 更多相关链接
深入研究高性能的 CFMX 应用 II
深入研究高性能的 CFMX 应用 I
CFMX For F2K4 WebService
Macromedia ColdFusionMX 教程
FWMX系列:数据驱动图形向导
作者文章 更多作者文章
Flash的Debug程序AdminTool
ColdFusionMX技术课程第三期
ColdFusionMX技术课程第二期
ColdFusionMX技术课程第一期
JRun+dw2k4 快速上手jsp开发
关键字搜索 常规搜索 推荐文档
热门搜索:CSS Fireworks 设计比赛 网页制作 web标准 用户体验 UE photoshop Dreamweaver Studio8 Flash 手绘 CG
站点最新 站点最新列表
周大福“敬•自然”设计大赛开启
国际体验设计大会7月将在京举行
中国国防科技信息中心标志征集
云计算如何让安全问题可控
云计算是多数企业唯一拥抱互联网的机会
阿里行云
云手机年终巨献,送礼标配299起
阿里巴巴CTO王坚的"云和互联网观"
1499元买真八核 云OS双蛋大促
首届COCO桌面手机主题设计大赛
栏目最新 栏目最新列表
浅谈JavaScript编程语言的编码规范
如何在illustrator中绘制台历
Ps简单绘制一个可爱的铅笔图标
数据同步算法研究
用ps作简单的作品展示页面
CSS定位机制之一:普通流
25个最佳最闪亮的Eclipse开发项目
Illustrator中制作针线缝制文字效果
Photoshop制作印刷凹凸字体
VS2010中创建自定义SQL Rule
>> 分页 首页 前页 后页 尾页 页次:1/21个记录/页 转到 页 共2个记录

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
网站可用性测试及优化指南
《写给大家看的色彩书1》
《跟我去香港》
众妙之门—网站UI 设计之道
《Flex 4.0 RIA开发宝典》
《赢在设计》
犀利开发—jQuery内核详解与实践
作品集 更多内容

杂⑦杂⑧ Gold NORMANA V2