このブログ「吟遊詩人の戯言」 の記事検索...

SQLクエリ文字列は,埋め込みリソース化するテキストファイルを利用すると,より便利です

関連記事

SQLクエリ文字列は,文字列リソースファイルに記述したら便利です
って,昔は,文字列リソースファイルに記述しておったんじゃけど

これ,SQLクエリが縦に長くなってくると,非常に見づらい(汗

Visual Studioのリソースエディタの縦スクロールの処理がイマイチで,巨大クエリの一部が,キレイに表示されないわ
カーソル移動によっては,次の文字列リソース位置に,フォカースが移るわ,で

オイラ平気で,数段ネストのある副クエリを書きまくるので
SQLがバグると,非常にデバッグがめんどくさい

ってことで,最近は,SQLをテキストファイルに記述して
このテキストファイルを,VSのプロジェクトに引き込み,EXE内へ埋め込みリソースとして組み込む,みたいなやり方が増えてきておりまする
(ソリューションエクスプローラから,テキストファイルを選択して,プロパティ:ビルドアクションを「埋め込まれたリソース」に変更するだけで,EXEに組み込まれまする)

埋め込みリソーステキストファイルなら,VSのエディタでも,普通のソースファイルとして表示編集できますし(縦方向に長くなってもイライラしなくて済むしのぉ)

C#辺りからアクセスするには

//---------------------------------------------
//リソースからクエリ文字列を取得
//
//---------------------------------------------
protected string LoadQueryText(string path)
{
    

    //現在のコードを実行しているAssemblyを取得
    System.Reflection.Assembly myAssembly =
        System.Reflection.Assembly.GetExecutingAssembly();

    System.IO.Stream stm = myAssembly.GetManifestResourceStream(path);

    //指定されたマニフェストリソースを読み込む
    System.IO.StreamReader sr = 
        new System.IO.StreamReader(
            stm,
            System.Text.Encoding.GetEncoding("shift-jis")
           );
    //内容を読み込む

    string s = sr.ReadToEnd();
    //後始末
    sr.Close();

    return s;
}


......


string sql;
sql = LoadQueryText("DBCtrl.Query2.tbl.S." + "sql_s_selectlistall.txt");

にて.

DBCtrlがアセンブリ名
Query2.tbl.S.は,ファイルが置かれているプロジェクト内フォルダ名
sql_s_selectlistall.txtが,SQLクエリが書かれている,テキストファイル本体でごわす

 
 
 
 

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <img localsrc="" alt="">