SQL文の発行は、CFQUERYタグを使います。
<CFQUERY name="任意の名前" dataSource="administratorに登録されているデータソース"> ・・・SQL・・・ </CFQUERY> |
で発行することができます。
ちなみに、SELECT文の結果を、画面に表示したい場合は、CFLOOPのクエリーループを使います。
使い方は、
<CFLOOP query="CFQUERYでつけた名前"> #カラム名# </CFLOOP> |
でいけちゃいます。
また、DML文の場合は、トランザクション処理が走るので、CFQUERYの外側に、
<CFTRANSACTION action="begin"> <CFTRY> <CFQUERY・・・> ・・・SQL文・・・ </CFQUERY> <!--- エラー発生 ---> <CFCATCH type = "Database"> <CFTRANSACTION action="rollback" /> </CFCATCH> </CFTRY> <!--- 無事にトランザクション完了 ---> <CFTRANSACTION action="commit" /> </CFTRANSACTION> |
というように、CFTRANSACTIONタグで括って、さらにCFRYを使ってその直下にCFQUERYタグを置くようにしましょう!!
なぜ、DML文発行時にここまでしなくちゃーいけないのかというと、エラーが発生した場合、rollbackを行い正常終了の場合、commitをかけたいからです。
cftryを入れることで、エラーが発生した場合、cfcatchでエラーが発生した場合の処理に移り、そこで、rollbackされていることがわかります。
逆に正常終了の場合、cfcatchタグをスルーしてそのまま、commitがかかっていると思います。
最初は、理屈で覚えるよりも、暗記みたいな感じで覚える方が早いかもしれないかも。
0 コメント:
コメントを投稿