[seasar-dotnet:1257] Re: 外だしSQLをファイルシステムから取得したい
kubo
[E-MAIL ADDRESS DELETED]
2009年 2月 10日 (火) 11:57:27 JST
久保(jflute)です。
S2Dao.NETにSQLファイルをファイルシステムから
取得する機能は存在していません。
なので、DaoMetaDataImplを拡張するやり方が
一番無難だと思われます。
#
# ちなみに、Quill + DBFluteではファイルシステムからも
# 取得できるようにしております。
# (提示して頂いている拡張とほぼ同じ処理をしています)
#
2009/2/10 Mai Kawasaki <[E-MAIL ADDRESS DELETED]>:
> こんにちは、maiです。
>
> 現在、VB2008、S2Container + S2DaoでWindowsアプリ開発を行っています。
>
> diconファイルやS2Daoの外だしSQLの内容を、
> 「埋め込まれたリソース」ではなくファイルシステムから取得し、
> 現場にて内容の切り替えをしたいと考えています。
> diconの内容はファイルシステムからできたのですが、
> 外だしSQLをファイルシステムから取得することができません。
>
> 今のところ、
> Seasar.Dao.Impl.DaoMetaDataImplのSetupMethodBySqlFileを
> 下記のようにすることで対応しようかと考えていますが、
> 他に良い方法がありましたら、ご教示頂けないでしょうか。
>
> protected virtual void SetupMethodBySqlFile(MethodInfo mi)
> {
> string baseName = GetSqlFilePath(mi);
> string dbmsPath = baseName + _dbms.Suffix + ".sql";
> string standardPath = baseName + ".sql";
>
> Assembly asm = _daoInterface.Assembly;
> // 追加:ここから
> // ファイルシステムから、SQLファイルが取得できるかをチェック
> FileInfo sqlFileInfo = new FileInfo(standardPath);
> if (sqlFileInfo.Exists) {
> //ファイルが存在するなら、StreamReaderを指定されたエンコードで作成する
> using (StreamReader sr = new StreamReader(standardPath,
> Encoding.GetEncoding(SqlFileEncoding)))
> {
> string sql = sr.ReadToEnd();
> SetupMethodByManual(mi, sql);
> }
> return;
> }
> // 追加:ここまで
> if (ResourceUtil.IsExist(dbmsPath, asm))
> {
> string sql = ReadText(dbmsPath, asm);
> SetupMethodByManual(mi, sql);
> }
> else if (ResourceUtil.IsExist(standardPath, asm))
> {
> string sql = ReadText(standardPath, asm);
> SetupMethodByManual(mi, sql);
> }
>
> }
>
> --
> mai
> [E-MAIL ADDRESS DELETED]
>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>
seasar-dotnet メーリングリストの案内