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

Yoshihiro OSHITA [E-MAIL ADDRESS DELETED]
2008年 10月 15日 (水) 14:29:24 JST


久保様、
お世話になります、大下です。

> アプリケーションのプログラムから「新しい接続先」を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を直接利用する形になるかと思います。
>
> #
> # コミッタの方で同じようなことやったことある人いらっしゃいます?
> #
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-dotnet/attachments/20081015/1e4a9257/attachment.html>


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