[seasar-dotnet:1258] Re: 外だしSQLをファイルシステムから取得したい

Mai Kawasaki [E-MAIL ADDRESS DELETED]
2009年 2月 10日 (火) 13:41:08 JST


maiです。
早速のお返事ありがとうございます。

> S2Dao.NETにSQLファイルをファイルシステムから
> 取得する機能は存在していません。
> なので、DaoMetaDataImplを拡張するやり方が
> 一番無難だと思われます。

そうなんですね、残念です。
DaoMetaDataImplを拡張する方向で対応しようと思います。

> #
> # ちなみに、Quill + DBFluteではファイルシステムからも
> # 取得できるようにしております。
> # (提示して頂いている拡張とほぼ同じ処理をしています)
> #

普段はC#を触らないので、DBFluteも使用したことがないのですが、
次の機会には試してみたいと思います。

ありがとうございました。

--
mai
[E-MAIL ADDRESS DELETED]


kubo-san wrote, at 2009/02/10 11:57:
> 久保(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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
> 
> 


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