- PR -

Transaction 処理について

投稿者投稿内容
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-07-23 08:28
こんにちは。

 おそらく、Oracle Data Provider for .NETと、.NET Framework Data Provider for Oracleが混乱していると思われます。
NYRLさんのサンプルは、.NET Framework Data Provider for Oracleの方にありました。
りんさん、ななさんが問題にされているのはOracle Data Provider for .NETですよね?
Oracle Data Provider for .NETのサンプルでは、トランザクションはOracleDbCommand.Transactionに代入せずに使用されています。ここの説明では、
引用:

When this property is accessed through an IDbCommand reference, its set accessor method is not operational.


「IDbCommandより参照される場合はリードオンリーである」とあります。
NYRL
ベテラン
会議室デビュー日: 2003/07/14
投稿数: 90
投稿日時: 2003-07-23 09:11
Jittaさんフォローありがとうございますそのとおりでした

私が混乱させたみたいですいませんでした
りん
常連さん
会議室デビュー日: 2003/06/30
投稿数: 22
投稿日時: 2003-07-23 09:23
>りんさん、ななさんが問題にされているのはOracle Data Provider for .NETですよね?

そうでした、
私が見たサンプルも SQLServer用のサンプルで、
ODPとも.net for oracleとも違っていました。。。
すみません。

ODP.NETを使用したサンプルがあまり無いのでいつもとても助かります。
未記入
会議室デビュー日: 2009/04/17
投稿数: 1
投稿日時: 2009-04-17 18:32
Oracle Database starts a transaction only in the context of a connection. Once a
transaction starts, all the successive command execution on that connection run in the
context of that transaction. Transactions can be started only on an
OracleConnection object, and the read-only Transaction property on the
OracleCommand object is implicitly set by the OracleConnection object. Therefore,
the application cannot set the Transaction property, nor does it need to.

設定する必要はありません。
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2009-04-17 22:49
どうにも誤解があるようですが…

これはODP.NETの仕様です。
ODP.NETでは、コマンドにトランザクションを設定する必要はありません。
DbCommandだったか、基底の型にキャストすれば代入できますが、必要ありません。

まあ正直、通常のADO.NETの使い方を変えてしまっていて、あまりいい気はしないんですけどね。
一応、ODP.NETのドキュメントにはちゃんと書かれてたはずです。

--追記
すみません、2ページ目を見落としてましたごめんなさい。
っていうかしかも元はすごい昔の投稿ですね…嗚呼…

[ メッセージ編集済み 編集者: なちゃ 編集日時 2009-04-17 22:51 ]

スキルアップ/キャリアアップ(JOB@IT)