Ognacの雑感

木漏れ日々

目次

Blog 利用状況

書庫

ギャラリ

SQL文などのMultiLine文字列の扱い

C#には @"..." の構文があり
 string sql =@"
              select f1,f2,f3,...
              from TBL1
              where  f1=@f1
             ";
のようにすっきり記述ができます。VBではこの構文がないのて(改行を文末と見なす以上、継続文字処理が不可欠)煩雑なことになります。
       dim sql as string = " select f1,f2,f3 " _
                         + " from TBL1" _
                         + " where f1 =@f1"
のように書かれているソースを結構みるのでずか、私には読みにくい。
行数の多いSQLでもこの記述だと  Debug.Print sql の結果を コピペして追跡することになるのでイヤ。記述した当人も「SQL文の変更が大変なんですよ」と言っていた。
リソースに書くなり、別Fileに持つなど工夫すればプレーンなテキストデータとして SQL文が管理できます。
私は XML文として、
 <xxxSQL>
              select f1,f2,f3,...
              from TBL1
              where  f1=@f1
 </xxxSQL>
このような形式で XML_Fileで管理してます。 SQL_PlusやCSEなどコピペでの共用も楽で重宝してます。
ASP.NET で JavaScriptを動的に吐き出すときの ScriptソースもXMLで管理してるのでが, こちらは "<>&"などをEscapeしないといけないので少し不便。
定義Tableを作りそこに格納したほうがいいのかも知れませんね。

ソースの中に長い文字列定数類が入っていることに冗長感を感じるようになりました。爺化なのかな。

投稿日時 : 2007年8月28日 11:25

Feedback

# re: SQL文などのMultiLine文字列の扱い 2007/08/28 12:48 通り☆

途中にコメントを書きたいので、私はC#でも上のVBみたいに書いてます。
同じようにVBでそうしようと思っても、コメントが書けないんですよね(;_;)
別ファイルだと、処理で条件式を変更する場合に少し不都合じゃないですか?

>ソースの中に長い文字列定数類
resionで見えなくしちゃうとかw

# re: SQL文などのMultiLine文字列の扱い 2007/08/28 14:05 Ognac


>別ファイルだと、処理で条件式を変更する場合に少し不都合じゃないですか?
IDE.Editorは左右分割できて、TextFileでも同等に扱えるのでさほど不便には感じません。逆に一覧性が増したように感じてます。
結局好みの問題であり、トレードオフの問題なんですよね。

>resionで見えなくしちゃうとかw
regionが多重ネスト化して困ったことが.....orz

# re: SQL文などのMultiLine文字列の扱い 2007/08/28 16:43 通り☆

あ、そうかっ!
ソリューションの中に一緒に入れておけば、管理面でも大丈夫ですね。
>多重ネスト
な~んとなく良くないのかなと思っていたけど、何かバグがあるんですか?
それとも見通しが逆に悪くなっちゃったとか?w
私は今、2階層のところがあります...。

# re: SQL文などのMultiLine文字列の扱い 2007/08/28 20:26 Ognac

>な~んとなく良くないのかなと思っていたけど、何かバグがあるんですか?
バグはないんですが、3重や4重以上になってすべて閉じた状態にすると、参照したい文言を見つけるが厄介。
検索機能を行うと該当の上位のネストRegionが展開されるので、いまいちだなぁって思ってます。

# re: SQL文などのMultiLine文字列の扱い 2007/08/29 9:53 k2

>途中にコメントを書きたいので

私はSQL文に直接コメントを書き込んでいます。

String sql
= @"
SELECT *
FROM hoge
-- 1から10の範囲を取得する
WHERE range BETWEEN 1 TO 10
/*
表示順で昇順にソートする
*/
ORDER BY displayOrder
";

タイトル
名前
Url
コメント