none
ADO.netの型無しデータセットとオラクルNumber型について RRS feed

  • 質問

  • 型無しデータセットで固定小数点つきのデータがある列をデータアダプターで取得後、

    削除なり更新なりして、データアダプターのアップデートでDB更新をかけると、

    同時実行エラーが発生して、更新ができないのですが、どなたか回避策をご存知ないでしょうか。

     

    DBのNumber型項目はNumber(3,1)です。「3」のデータを用意して更新に行くと正常に更新できるのですが、

    「3.1」と小数点つきのデータを用意すると同時実行エラーです。

     

    勘違いで失敗しているかもしれないのですが・・・。

    一応、SafeMapiingはstring指定byts()指定もやってみましたが、だめでした。

     

    また、型無しデータセット内で「3.1」はSingle型と判断されているようなのですが・・。

    このせいなのか・・。でも、そうなら、safemappingで指定をすれば大丈夫なのでは?

    と、悩んでおります。

     

    VB2005・オラクル9.1・ODPの組み合わせで、型無しデータセットを使用して開発をしています。

     

    原因・良い解決案等ありましたら、よろしくお願いいたします。

    2007年11月8日 5:34

回答

  • 早速、ありがとうございます。

    Number型の制度を8桁「Number(8,1)」で試したところ、無事に対応出来ました。

     

    データテーブル内での型を見てみたところDubleとして保持するようになってました。

     

    一応今回試したバージョンは、

    オラクル9.2.0.1.0 パッチ9.2.0.7.0 (9.1ではなかったです)

    ODPは9.2.0.2.102

     

    での状態で検証確認できました。

    どう対応しようか、とても悩んでいた所です。大変助かりました。

     

    ありがとうございました。

    2007年11月8日 8:32

すべての返信

  •  

    「同時実行違反 : UpdateCommand によって 0 件処理されました。」のエラーメッセーですよね?

    昔、同じ現象で悩んだ事がありオラクルに問い合わせた事があります。
    原因はODPのバグ?のようで、解決策としては
    1.NUMBER型の精度を8桁以上にする。
    2.DataAdapterを使わずにSQLで更新する。
    のどちらかで対応できるはずです。

    もしかすると、その後オラクルからODPのパッチが出ているかもしれません。

    2007年11月8日 7:52
  • 早速、ありがとうございます。

    Number型の制度を8桁「Number(8,1)」で試したところ、無事に対応出来ました。

     

    データテーブル内での型を見てみたところDubleとして保持するようになってました。

     

    一応今回試したバージョンは、

    オラクル9.2.0.1.0 パッチ9.2.0.7.0 (9.1ではなかったです)

    ODPは9.2.0.2.102

     

    での状態で検証確認できました。

    どう対応しようか、とても悩んでいた所です。大変助かりました。

     

    ありがとうございました。

    2007年11月8日 8:32