忍者ブログ
全くIT系ではない製造業の社員がイントラ上でColdFusionと格闘。システム構築を外部委託するとき「できればColdFusionでお願いします」と頼むのだが・・・・
[37] [36] [35] [34] [33] [32] [31] [30] [29] [28] [23]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

テクノラティ(technorati)で被リンク検索するといつも、
「申し訳ございません。ただいまシステムが大変混み合っております。
お手数ですがしばらくお待ちになってからもう一度お試し下さい。 」
となる。

そういうもんかね?

さて、

ColdFusionでFlashGridの最後です。
Inser / Delete / Update の処理部分。

====================================
<!---登録・修正処理ここから--->
<cfif IsDefined("form.gridupdate") is True>
<cfoutput>
 <cfloop index="i" from="1" to="#ArrayLen(form.newsgrid.rowstatus.action)#"><!---この配列に 'U' 'I' 'D' が入ってる--->
  <cfswitch expression="#form.newsgrid.rowstatus.action[i]#">
  <cfcase value="U"><!---Updateの場合--->
   <cfquery datasource="etc" name="updategrid">
    UPDATE #TABLENAME# SET
    LNO = #form.newsgrid.lno[i]# , SINBUN = '#form.newsgrid.sinbun[i]#' ,
    KEYWORD = '#form.newsgrid.keyword[i]#' , TITLE = '#form.newsgrid.title[i]#'
    WHERE SEQ = #FORM.NEWSGRID.SEQ[i]#
   </cfquery>
  </cfcase>
  <cfcase value="D"><!---Deleteの場合--->
  <!---deleteじゃなく、フラグ立てる(DEL_F = 1)--->
  <!---ひとつのレコードをINSERT-DELETEした場合、SEQが無いので消せないので困るぞ対応--->
  <cfif form.newsgrid.original.seq[i] gt 0><cfset seq = form.newsgrid.original.seq[i]><cfelse><cfset seq = 0></cfif>
   <cfquery datasource="etc" name="delgrid">
    UPDATE #TABLENAME# SET
    DEL_F = 1
    WHERE SEQ = #SEQ#
   </cfquery>
  </cfcase>
  <cfcase value="I"><!---Insertの場合--->
   <!---ナンバー入れなかった場合はORA-が出るのでゼロ入れとく--->
   <cfif form.newsgrid.lno[i] is ''><cfset lno = 0><cfelse><cfset lno = form.newsgrid.lno[i]></cfif>
   <!---ナンバーに全角文字入れちゃうかも知れないので変換しとく。一応。つーかFlash側でvalidateしたいもんだ。--->
   <cfset lno = replacelist(lno,'1,2,3,4,5,6,7,8,9,0','1,2,3,4,5,6,7,8,9,0')>
   <cfquery datasource="etc" name="insgrid"><!--- SEQには自動でシーケンス番号入れる。じゃないと修正とか削除がタイヘン! --->
    INSERT INTO #TABLENAME#
    (HIDUKE , SINBUN , KEYWORD , TITLE , LNO , SEQ , DEL_F)
    VALUES
    ('#FORM.SELECTDAY#' , '#FORM.NEWSGRID.SINBUN[i]#' , '#FORM.NEWSGRID.KEYWORD[i]#' , '#FORM.NEWSGRID.TITLE[i]#' , #lno# , EI_NEWS_SEQ.NEXTVAL , 0)
   </cfquery>
  </cfcase>
  </cfswitch>
 </cfloop>
 </cfoutput>
</cfif>
<!---登録修正処理ここまで--->
===============================================

ってことで、UPDATEは問題ないですね。そのまんま。

DELETEはホントに消すんじゃなく、フラグにしています。

INSERTはOracleのシーケンスを使って連番をつけています。
あと、<CFGRID>でvalidate(入力チェック)するやり方がわからなかったので、こっちでやってます。
#replacelist( )# は、よく使いますね~。

最終形は以下。

PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
ブログ内検索
プロフィール
HN:
CFIF
性別:
男性
自己紹介:
もっと日本でもColdFusionが広まって欲しいです。

情報通信を生業としない企業の、システム系でもない普通の社員なので、 ColdFusionは独学。参考書が少ないのがツライです・・・・なんだかんだ、ColdFusion4.xのシリウス時代から7年くらいのおつきあい?リンコムNextのソースが教科書かも。

外注するときはよく「できればColdFusionで・・・・」とお願いするのですが、ほとんどの場合「えっ!?」と驚かれてしまい、「SEのアサインが・・・」などと営業さんが困ってしまうことが多くて悲しいです。
ちょっとしたものなら自分でシステム構築しちゃいますが、一人でやるには時間が足りませんね・・・

FlashRemotingとかもやりますが、Flexには手を出してません。
と、最初の頃書きましたが、ついにFlexに手を出しました。Flex1.5はイマイチわかりませんでしたが、Flex2は別物ですね。これで6万円でイインデスカ?
そしてFlex2とColdFusionの組み合わせなら無敵な気がしますよ。ほんとに。
最新トラックバック
カレンダー
01 2025/02 03
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
なかのひと
忍者ブログ [PR]