■23619 / ) |
Re[5]: オプティミスティック同時実行制御 Insert処理 |
□投稿者/ 魔界の仮面弁士 (824回)-(2008/08/19(Tue) 14:21:25)
|
2008/08/19(Tue) 14:24:11 編集(投稿者)
■No23617 (yan さん) に返信 > ただOracleからSQLServerに変更される可能性があるため、 あえて System.Data.Common を使うという事は、最初にファクトリからインスタンスが生成されるわけですよね。 http://www.microsoft.com/japan/msdn/thisweek/300x10/Phase3/fact/vb.aspx
そのとき、現在の接続が Oracle なのか SQL Server なのか それ以外なのかといった情報を、どこかで 保持しておくのでしょうか? それとも、DB の違いは一切意識させたくないのでしょうか?
> OracleExceptionがコードのあちこちに散らばるのは避けたいので 例外処理クラスを予め作っておき、それを呼び出してみては如何でしょうか。 他のデータベースに切り替えた際、必ずしも ex.Message から十分な情報が得られると言う保証は 無いので、今の実装だと、移植性が損なわれてしまうように思えます。
> Const UNIQUE_ERR As String ="ORA-000001" これは避けたほうが良いかと思いますよ。 プロバイダを切り替えても対処できないので(再コンパイルが必要になってしまう)。
> DB更新があるたびに Catch句の内容を書くのも面倒なのでどうにか自作例外でできないかと思案中です。 Exception を引数に取り、Catch 句の内容を代替するための補助メソッドを用意するとか。
|
|