[seasar-dotnet:953] Re: 動的に複数DBファイルを作成して、複数同時にアクセス

kubo [E-MAIL ADDRESS DELETED]
2008年 10月 15日 (水) 22:21:34 JST


久保です。

> If false, the database will be created automatically.
> とあるように、自動的に「Library.SQ3」というDBファイルを作成してくれます。

なるほど、この辺は組み込み系DB特有のものですね。
JavaでもH2やApacheDerbyが同じような機能もってます。

> 直接App.configにxmlをがりがり書き込めばいいのかもしれませんが、まだ試してい
> ません。
> それに、このようにして書いた接続文字列をコンテナが読み取ってくれるのだろうか
> という疑問もあります。

個人的な見解では、ダメなような気がします。
.NETがどのようにApp.configを扱っているか次第ですが、
基本的にプロセス起動時に読んでそれ以降は見ないのでは。。。
(他のコミッタの方、どうです!?)

>> Seasar.NET自体が内部でやっている「DataSourceの生成」と同じことを
>> アプリ上で自分自身で行う必要があるかと思います。
が、制御しやすく一番わかりやすいかと思います。

2008/10/15 Yoshihiro OSHITA <[E-MAIL ADDRESS DELETED]>:
> 久保様、
> お世話になります、大下です。
>
>> アプリケーションのプログラムから「新しい接続先」をCREATEして、
>> その作ったばかりの接続先にDBアクセスするということでしょうか?
>
> そうですね。接続文字列は、
>
> "Data Source=Library.SQ3;FailIfMissing=False;…;Default Timeout=30"
>
> のようにしています。「FailIfMissing=False」 としておくと、
> (SQLite.NETのヘルプから抜粋しますが、)
> If set to true, will throw an exception if the database specified in the
> connection string does not exist.
> If false, the database will be created automatically.
> とあるように、自動的に「Library.SQ3」というDBファイルを作成してくれます。
>
> ただ、実際のプログラムではDBファイル名を動的に作成するので、
> あらかじめ設定ファイルに記述しておくことはできません。
>
> ならば、動的につくったDBファイル名を含む接続文字列をApp.configに書き込んでや
> ればどうだろう
> と思ったのですが、接続文字列はアプリケーション設定に属するらしく、プログラム
> 上から書き込めませんでした。
> 直接App.configにxmlをがりがり書き込めばいいのかもしれませんが、まだ試してい
> ません。
> それに、このようにして書いた接続文字列をコンテナが読み取ってくれるのだろうか
> という疑問もあります。
>
> でも、久保さんのお言葉から察すると、
>
>> Seasar.NET自体が内部でやっている「DataSourceの生成」と同じことを
>> アプリ上で自分自身で行う必要があるかと思います。
>
> をやる必要がありそうですね?
>
>> 久保(jflute)です。
>>
>>> SQLiteのDBアクセスにS2Container.NET,S2Dao.NETを利用しているのですが、
>>> 動的に作成した複数のDBファイルへの同時アクセスはどのようにすればよいで
> しょうか?
>>
>> SQLiteは使ったことないのですが、確認させて下さい。
>> アプリケーションのプログラムから「新しい接続先」をCREATEして、
>> その作ったばかりの接続先にDBアクセスするということでしょうか?
>>
>>> にあるように、きめ打ちで「Library.SQ3」を指定してやる分には、うまく動いて
> いるのですが、
>>> このDBファイルを動的に複数作成して、複数同時にデータを書き込んだりする必
> 要があります。
>>> この場合は、どのように設定すればよいでしょうか?
>>
>> 少なくとも設定ファイルに書くやり方では無理だと思います(静的なので)。
>> Seasar.NET自体が内部でやっている「DataSourceの生成」と同じことを
>> アプリ上で自分自身で行う必要があるかと思います。
>> また、DataSourceを動的に作れたとしても静的なDaoインターフェースから
>> その作ったばかりの接続先にアクセスするのは難しいかと思いますので、
>> その場合ADO.NETを直接利用する形になるかと思います。
>>
>> #
>> # コミッタの方で同じようなことやったことある人いらっしゃいます?
>> #
>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>
>


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