[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 メーリングリストの案内