演習 4: cfupdate タグによる SQL 行の更新

既存の SQL 行を更新するために、ColdFusion では cfupdate タグを使用する簡単な方法を提供しています。cfinsert タグと同様、cfupdate タグには、データの挿入位置を指定する datasource 属性と tablename 属性があります。また、このタグには、挿入するフィールドを指定する formfields 属性もあります。formfields 属性により、挿入するフォームフィールドをカンマで区切ったリストが指定されます。この属性を指定しない場合は、フォーム内のすべてのフィールドがオペレーションの対象となります。

"tripedit.cfm" ページのすべてフィールドには、対応する Trips テーブルの列があるため、cfinsertcfupdate の両方のタグで formFields 属性を省略できます。tripIDフォームフィールドが Trip Edit ページから渡された場合、cfupdate タグが使われます。それ以外の場合は、cfinsert タグが実行されます。次の例では、formfields 属性のない、cfupdatecfinsert タグが使われています。

<cfif not isdefined("form.tripID")>
   <cfinsert datasource="CompassTravel" tablename="Trips"> 
      <cflocation url="tripdetail.cfm">
   <cfelse>
   <cfupdate datasource="CompassTravel" tablename="Trips">
      <cflocation url="tripdetail.cfm?ID=#Form.tripID#">
</cfif>

コードの確認

次の表で、cfinsertcfupdate コードについて説明します。

コード 説明
<cfif not isdefined("form.tripID")>
   <cfinsert datasource="CompassTravel"
   tablename="Trips"> 
      <cflocation url="tripdetail.cfm">
<cfelse>
<cfupdate datasource="CompassTravel"
   tablename="Trips">
<cflocation url="tripdetail.cfm?ID=#Form.tripID#">
</cfif>

IsDefined 関数は、非表示フィールド tripID が "tripedit.cfm" ページからアクションページに渡されたかどうかを判別します。現在の旅行が存在する場合、IsDefined 関数は true を返します。現在の旅行が存在しない場合、cfif ステートメントは true です。cfif ステートメントが true の場合、cfinsert タグが実行され、最初の旅行がメインページに表示されます。cfif ステートメントが false の場合、cfupdate ステートメントが実行され、更新された旅行がメインページに表示されます。

cfupdate タグを使用してデータベースを更新するには :

  1. エディタで my_app ディレクトリの "tripeditaction.cfm" ファイルを開きます。
  2. ファイルの最後にある </body> タグの前に次のコードを追加します。
    <!--- データベースを更新します。 --->
    	<cfif isOk EQ "Yes">
    	   <cfif isdefined("form.tripID")>
    		   <cfupdate datasource="CompassTravel" tablename="trips">
    	       <cflocation url="tripdetail.cfm?ID=#Form.tripID#">
    	   <cfelse>
    		   <cfinsert datasource="CompassTravel" tablename="TRIPS"> 
               <cflocation url="tripdetail.cfm">
    	   </cfif>
    	<cfoutput>You have added #Form.TripName# to the trips database.
    	</cfoutput>
    	</cfif>
    
  3. ファイルを保存します。

cfupdate タグを使用してデータベースにデータを追加する方法については、『ColdFusion MX 開発ガイド』を参照してください。


ColdFusion MX 7 | ColdFusion MX 6.1 | ColdFusion MX* | ColdFusion 5* | フォーラム* | デベロッパーセンター | サポート情報 | バグ報告

バージョン7

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/coldfusion/7_jp/htmldocs/db_main5.htm