[seasar-dotnet:400] ASP.NET+VB+S2Dao.NETにおけるSQLファイルの埋め込み

津草 佑介 y-tugusa @ seibu-denki.co.jp
2006年 11月 29日 (水) 15:00:34 JST


はじめまして、津草と申します。

先日法政大学で行われたセミナーで杉本さんのお話を伺い、Seasar.NETを導入し
ようと考え、現在既存のWebアプリを改修しております。

現在の環境は以下の通りです。
>ASP.NET
>.NET Framework 2.0
>開発言語はVB.NET
>S2Container.NET 1.2.6
>S2Dao.NET 1.0.1

ASP.NET+VB.NETのサンプルが少ないこともあり、いろいろ試行錯誤しながら取り
組んでおりますが、1点だけどうしても解決できない点があります。

それは、S2Dao.NETにおけるSQLファイルの埋め込みという部分です。

Seasar.NETのページを参考に、VS2005 Express EditionにてDaoインターフェー
スとSQLファイルを用意してクラスライブラリを作成して、出来たDLLをWebサイ
トのbin配下に格納して、動作するかを確認しています。

参考に以下のソースにて実行しています。
>Daoインターフェース
Imports System
Imports System.Data
Imports System.Collections
Imports Seasar.Dao.Attrs
Imports jp.co.seibu_denki.Entity

Namespace jp.co.seibu_denki.IDao
    <Bean(GetType(KOJI))> _
    Public Interface IKOJIDao
        Sub Insert(ByVal koji As KOJI)
        Sub Update(ByVal koji As KOJI)
        Sub Delete(ByVal koji As KOJI)
        Function Search(ByVal koji As KOJI) As IList
    End Interface
End Namespace

>SQLファイル(IKOJIDao_Search.sql) ← "埋めこまれたリソース"としている
SELECT
    ANKEN_ID,ANKEN_NAME,CUSTOMER_ID,RANK,KOJI_ID,KOJI_NAME,TEIKYO_USER_ID,CUSTOMER_DEPT,CUSTOMER_TANTOU,ROUGH_ESTIMATE,DETAIL,CLOSING_DATE,USER_ID,
REGIST_DATE,STATUS,VALID,UPDATE_TIME,UPDATE_USER_ID,CAUSE,CONTINUED_FLAG
FROM
    KOJI
WHERE
    KOJI.CUSTOMER_ID = CUSTOMER.CUSTOMER_ID AND KOJI.USER_ID = USER_DATA.USER_ID
    /*IF KOJI.RANK != null*/AND RANK = /*KOJI.RANK*/'A'/*END*/
    /*IF KOJI.USER_ID != null*/AND USER_ID = /*KOJI.USER_ID*/'03443'/*END*/

出来たDLLをWebサイトのbinに置いてSearch()を実行しているのですがが、ログ
を見ると上記のSQLで実行されずに自動生成されたSQLが実行されているようです。

SQL文をうまく埋め込むために必要な方法としてなにかアドバイスをいただけた
らと思います。もしくはASP.NET+VB.NETでSQLファイルを埋め込んだサンプル等
がありましたら参考にしたいです。

大変長文になりまして申し訳ございませんが、よろしくお願いいたします。他に
開示してほしい情報がありましたらご連絡ください。

-- 
津草 <y-tugusa @ seibu-denki.co.jp>



seasar-dotnet メーリングリストの案内