[seasar-dotnet:1579] Re: S2DAO.NET のトランザクションについて

kubo [E-MAIL ADDRESS DELETED]
2010年 3月 10日 (水) 10:37:56 JST


久保(jflute)です。

比嘉さん、こんにちは

S2Dao.NETの拡張(DBFlute.NET)ですが、
dfnet-asp.net-exampleプロジェクトのExampleが
参考になるかと思います。
(Exampleは C# ですが、VB.NETでの要領は同じはずです)

// dfnet-asp.net-example (SVNリポジトリ)
https://www.seasar.org/svn/sandbox/dbflute.net/trunk/dfnet-asp.net-example

この中の "MemberFacade.cs" の Update メソッドをご覧下さい。

// MemberFacade.cs (SVNリポジトリ)
https://www.seasar.org/svn/sandbox/dbflute.net/trunk/dfnet-asp.net-example/source/DfExampleBiz/Facade/Member/MemberFacade.cs

[Transaction] 属性が指定されているかと思います。
このように指定すると、このメソッドの呼び出しがまるまる
トランザクション開始となり、正常終了すればコミット、
例外が発生すればロールバックとなります。
(自動でそのようになります)
MemberFacadeクラス自体が Quill で管理される
インスタンスであることが前提です。

Transaction属性のドキュメントとして、こちらになります。
http://s2container.net.seasar.org/ja/quill.html#nodicon_tx

> また、ストアドで対応することも検討したのですが、ストアドの引数には
> DTOで定義した配列を指定することができない為、難しいと考えています。
> PL/SQLテーブルと呼ばれる配列を指定することも可能みたいなのですが、
> 動的な配列には対応できないようです。
"動的な配列" というのがどういうものを指すのかわかりませんが、
プロシージャ自体には、OUTパラメータでのカーソル指定
ならこのように指定できます。

create or replace procedure SP_RESULT_SET_PARAMETER(cur out sys_refcursor)
as
begin
  open cur for select * from MEMBER;
end SP_RESULT_SET_PARAMETER;

2010/3/10 比嘉 章 <[E-MAIL ADDRESS DELETED]>:
> はじめまして比嘉と申します。
>
> 今困っていることがあり、解決方法が見つからないのでメーリングリストに
> 参加させていただきました。初歩的な質問になってしまうのですが、
> アドバイスをいただけないでしょうか。
>
> 【質問事項】
> 現在、S2DAO.NETを使用しています。
> ファイルを読み込みそのデータをDBへ格納したいのですが
> トランザクション、コミット、ロールバックする方法が分かっていません。
> OracleはInsert文を発行すると暗黙的にトランザクションがかかるようですが、
> 明示的にトランザクションを発行する方法はありますか?
>
> また、ストアドで対応することも検討したのですが、ストアドの引数には
> DTOで定義した配列を指定することができない為、難しいと考えています。
> PL/SQLテーブルと呼ばれる配列を指定することも可能みたいなのですが、
> 動的な配列には対応できないようです。
>
> <流れ>
>
> ①ファイル読み込み
>> ②トランザクション発行
>> ③INSERT文発行(ループ)
>> ④コミット(エラー発生時はロールバック)
>
> 【環境】
> 開発言語   :VB.NET
> クライアント:Windows XP
> APサーバ   :Windows 2003
> DBサーバ    :Redhat Enterprise(oracle 10g)
>
> 【仕組み(参考)】
> クライアントからAPサーバのWebサービス(ASP.NET)を呼び出し、
> APサーバからDBサーバへ接続を行ってデータ取得、又は更新を行って
> クライアントへ返却(SOAPメッセージ)する仕組みになっています。
>
> 宜しくお願いします。
>
> ------------------------------
> 沖縄県国民健康保険団体連合会
> 情報・介護課 情報管理係
> 比嘉章(Higa Akira)
> 
> 
> ------------------------------
>
>
>
>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>
>


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