[seasar-dotnet:2331] Re: 2WaySQLの記述方法について
志水正幸
[E-MAIL ADDRESS DELETED]
2013年 10月 25日 (金) 03:17:45 JST
こんばんわ。志水です。
なるほど。
こういう記事やサンプルがあったんですね。
見落としていたようです。
頭文字は、宣言は小文字、パラメータ利用時は大文字が正式なようですね。
この書き方で統一したいと思います。
ありがとうございました。
(2013/10/25 0:07), taknb2nch wrote:
> こんにちは、taknb2nchです。
>
> 私もどれが正解かと言われると自信がありませんが、
> こちらにもありますように、
> http://dbflute.net.sandbox.seasar.org/ja/introduction/index.html#methodinit
> 「外だしSQLのパラメータコメント上でのプロパティの参照は...注意が必要で
> す。」
> と書かれてあります。
>
> またParameterBeanの定義については、
> https://www.seasar.org/svn/sandbox/dbflute.net/trunk/dfnet-basic-example/source/DfExample/DBFlute/ExBhv/
> のサンプル(sqlファイル)を見てみますと、
> フィールド(メンバ変数)のように先頭は小文字で定義されています。
>
> ですので私は、
> ParameterBeanの定義は先頭小文字、
> ParameterBeanのプロパティを参照する部分は先頭大文字、
> を使用しています。
>
>
>
> 2013年10月24日 19:23 志水正幸 <ie2m-smz @ asahi-net.or.jp
> <mailto:ie2m-smz @ asahi-net.or.jp>>:
>
> こんにちは。お世話になっています。
> 志水と申します。
>
> 2WaySQLの記述方法なのですが、
> よく、説明も読まずに作ってしまった私も悪いのですが、
> DBFLUTEの「パラメータコメント」では、両方とも小文字なんですよね〜。
> しかし別の書き方でも動くんです。
> でも、すこし書き方が違うと動かない場合もあるんです。
> 何が正式な記述方法なのか、よくわからなくなってしまいました。
> まぁ動いているっぽいのでイイと言えばそれまでなんですが・・・
> なんか気持ち悪いので、教えてください。
>
> 以下の<参考SQL>(適当なSQLなので構文おかしいかも)ような記述をし
> て実行したところ、
> 条件部分の「pmb.misecd」に値を入れていても無視されている状態になり
> ました。
> >>/*IF pmb.misecd != null*/T_SIWAKE.misecd_cd =
> /*pmb.misecd*/'110001'/*END*/
> 無視されているのでおかしいと思い、以下のように他の条件と同じように
> pmb変数の頭文字を大文字に
> 変更したところ認識されるようになりました。
> >>/*IF pmb.Misecd != null*/T_SIWAKE.misecd_cd =
> /*pmb.Misecd*/'110001'/*END*/
>
> また、別のSQLでは、
> 下記のように宣言部分のpmb変数の頭文字も大文字で、且つ
> SQL内のpmb変数の頭文字も大文字の場合もうまく動作しています。
> -- !df:pmb extends Paging!
> -- !!String Misecd!!
> -- !!String Syubetucd!!
> -- !!String Nendo!!
>
>
> <結論>
> ・宣言部分は、頭文字は大文字でも小文字でも関係なし
> ・SQL条件内は、頭文字は大文字もしくは小文字でそろえないとダメ
> ⇒SQL条件内で混在はダメ
> ・宣言部分のpmb変数の頭文字が小文字でもSQL条件内でのpmb変数は大文
> 字でもOK。
> こんな感じだと思うのですが、どうでしょうか?
>
> 以上、宜しくお願いします。
>
> *--<参考
> SQL>---------------------------------------------------------------------------*
> -- #xxxxxxxxSQL#
>
> -- !df:pmb extends Paging!
> -- !!String misecd!!
> -- !!String syubetucd!!
> -- !!String nendo!!
>
> SELECT T_XXXXX.misecd, SUM(NVL(T_XXXXX.KIN,0)) AS KIN,
> SUM(NVL(T_XXXXX.TAX,0)) AS TAX
> ,TRUNC(T_XXXXX.TOROKU_YMD,'MM') AS TOROKU_YMD
> FROM T_XXXXX
> /*BEGIN*/WHERE
> /*IF pmb.misecd != null*/T_SIWAKE.misecd_cd =
> /*pmb.misecd*/'110001'/*END*/
> /*IF pmb.Syubetucd != null*/AND T_XXXXX.kaikei_cd =
> /*pmb.Syubetucd*/'03'/*END*/
> /*IF pmb.Nendo != null*/AND T_XXXXX.nendo = /*pmb.Nendo*/'2013'/*END*/
> /*END*/
> GROUP BY T_XXXXX.misecd,TRUNC(T_XXXXX.TOROKU_YMD,'MM')
> ORDER BY T_XXXXX.misecd,TRUNC(T_XXXXX.TOROKU_YMD,'MM')
>
> _______________________________________________
> seasar-dotnet mailing list
> seasar-dotnet @ ml.seasar.org <mailto:seasar-dotnet @ ml.seasar.org>
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>
>
>
>
> _______________________________________________
> seasar-dotnet mailing list
> seasar-dotnet @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-dotnet/attachments/20131025/cfb07cf0/attachment.html>
seasar-dotnet メーリングリストの案内