Cfinsert我們講解完了,那么作為作者本人,不是非常推薦使用Cfinsert,如果要做大量的數(shù)據(jù)庫的插入,我希望各位開發(fā)人員能夠靈活的使用cfquery而不是cfinsert。下面我們講解一下cfupdate這個標簽。單擊圖標,會出現(xiàn)如下的界面:
各位可能看到cfupdate的窗口設(shè)置和cfinsert的很類似,是的,這兩個Tag都是對于Form表單進行專屬操作的標簽。對于cfupdate的使用方法,作者這里不想多費筆墨,它的使用和cfinsert幾乎是一樣的,同樣,我們用一段程序來看看cfupdate的作用。
程序使用了官方的一段腳本 < !--- 使用cfupdate更新數(shù)據(jù)庫 ---> < !--- 檢測course_ID這個值,如果存在則更新數(shù)據(jù)記錄---> < cfif IsDefined("form.Course_ID")> < !--- 檢測Course_ID是不是一個數(shù)字 ---> < cfif Not IsNumeric(form.Course_ID)> < cfabort> < /cfif> < !---做更新---> < cfupdate datasource="cfsnippets" tablename="Courses" formfields="Descript, Course_ID"> < /cfif> < !--- 使用一個query來查看通過url傳過來的course_ID是否在對應(yīng)的記錄上做了更新,各位開發(fā)人員可以使用這種查詢的技巧來驗證數(shù)據(jù)庫是否更新,而不用打開數(shù)據(jù)庫去查看---> < 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傳遞過來的參數(shù),以及對傳遞參數(shù)course_ID所在的數(shù)據(jù)庫的記錄進行更新的操作。這個程序非常精辟,希望各位開發(fā)者能夠很好的研究。其中,第一次訪問不帶參數(shù)而顯示一個記錄級的方法都非常的實用,可以用在實際的開發(fā)當(dāng)中。在這里,作者從本人的開發(fā)經(jīng)驗再次提出一個建議,建議大家在實際的開發(fā)當(dāng)中對于經(jīng)常操作數(shù)據(jù)庫的程序編寫時,能不用cfinsert和cfupdate就不用,因為這兩個tag雖然方便,但是是犧牲了靈活性和效能來取得的。希望大家使用cfquery來進行數(shù)據(jù)庫的查詢,插入和更新。
好了,下面我們輕松一下,講解兩個非常容易看懂的tag,這兩個tag在大家進行開發(fā)的過程中使用的頻率也是很高的。一個是cfinclude,另一個是cflocation。
單擊中的左邊的圖標,就會使用coldfusion中的cfinclude標簽,并彈出如下的窗口:
這個標簽就是用來在coldfusion的某個頁面中反復(fù)使用其他的頁面模板,它與asp中的include的作用幾乎是一樣的。比如在coldfusion要嵌入一個站點統(tǒng)一標準的頁眉和頁腳,一個是header.cfm,另一個是footer.cfm,那么,就可以使用cfinclude來實現(xiàn)。
<cfinclude template="header.cfm">
使用cfinclude也有缺點,隨著企業(yè)應(yīng)用的不斷發(fā)展,業(yè)務(wù)邏輯和表現(xiàn)兩者需要進行分離的要求越來越高,那么我們就需要進行組件的設(shè)計,這樣,完全混合邏輯和表現(xiàn)的cfinclude標簽就不是很適用了,但是目前的coldfusionMx有了它最新的cfc(coldfusion components),使用這個方法可以達到邏輯與表現(xiàn)的抽離。但是cfinclude的優(yōu)點也是具有的,就是同cf component一樣可以一次性的修改頁面代碼來完成site中的所有引用,另外,cfinclude還可以包含很多的application和session的方法。
單擊上面兩個圖標中右邊的圖標,就是使用coldfusion的另外一個tag,cflocation。這個標簽起到了一個頁面跳轉(zhuǎn)的作用,它經(jīng)常與cfabort使用。比如我們做一個用戶驗證的程序,當(dāng)進行一些判斷之后,發(fā)現(xiàn)用戶并不擁有權(quán)限,那么就需要把他自動送回到首頁或者某個頁面,這個時候,我們就要使用cflocation這個標簽,例如:
<cfif form.registername EQ “”> < cflocation url="http://www.macromedia.com" addtoken="No"> < cfabort> < /cfif>
那么我們在DreamweaverMX使用cflocation的時候,看到的設(shè)置窗口如下:
最后,我們要進行一下coldfusionMx中的函數(shù)說明,coldfusionMX中的函數(shù)分為15類,包括Array, Authentication,Conversion,Date/Time,Decision,Display and Formatting,Dynamic Evaluation,International,List,Mathematical,Query,String,Structure,System,XML,Other十五個種類。這些分類包括了256個coldfusion函數(shù),應(yīng)該可以滿足開發(fā)應(yīng)用的需求,而且各位也還可以自己組合定義自己的function和component來使用,這樣就可以滿足開發(fā)的需要了。作者在這里不介紹Function的單獨應(yīng)用了,以后會在教程中隨著程序說明一些常用的funtions。如果開發(fā)者在使用上有困難或者不明白使用的方法,可以去這個地方查看Functions的應(yīng)用和示例:
http://examples.macromedia.com/coldfusion/examples/index.cfm
好了,這期的教程就講到這里,下一期,我們講解coldfusion中重要的cf Flow也就是循環(huán)。下期見。!
出處:
責(zé)任編輯:藍色
上一頁 ColdFusionMX Basic Tag編程 續(xù)一 下一頁
◎進入論壇網(wǎng)絡(luò)編程版塊參加討論
|