- PR -

RDBのテーブルをDataSet経由で別のテーブルに出力したい

投稿者投稿内容
ぷじょー
会議室デビュー日: 2004/07/08
投稿数: 16
投稿日時: 2004-12-02 14:09
Oracleのテーブルからデータを取得し、データテーブルに保持します。
プログラム中でデータテーブルを更新し、そのデータテーブルを同じOracleの別のテーブルに出力したいのです。
ADOのUpdateメソッドだと、データテーブルのRowStateがAddedの場合しかInsertしないですよね?
でもプログラム中でデータをいじってるので、その場合RowStateがModifiedになってます。

RowStateを全部Addedに変える方法、もしくはRowStateを意識せずにテーブルにInsertする方法はありませんか?
件数ha
1万件弱です。

よろしくお願いします。

[ メッセージ編集済み 編集者: ぷじょー 編集日時 2004-12-02 14:15 ]
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2004-12-02 14:53
どういう形でそのデータを保持していますか?
バインドされたGridかな。
でも1万レコードあるんですよね。

普通にSQL書いて対応するというわけには行かない理由があるのでしょうか。

> ADOのUpdateメソッドだと
ADO.NETではなく、ADOですか?
それとも、ADOの場合は、という意味ですか?

現状どうなっていて、どういう目的を達成しようとしているのか
もう少し説明がほしいところです。

> Addedの場合しかInsertしないですよね?
追加ならINSERT句であってます。

> データをいじってるので、その場合RowStateがModifiedになってます。
修正ならUPDATEしますから、Modifiedになるのは正しいと思います。

> RowStateを全部Addedに変える方法
全行走査して、追加すればいいんでないかと。

単なるテーブルのコピーでしたら、SQLでやるのがいいです。

知らないんで教えてください。
RowStateをAddedに変えられたとして、「データテーブルを同じOracleの
別のテーブルに出力」が実現できる方法を、提示していただけませんで
しょうか。
そうすれば、検証してくれる人が現れるかも。

_________________
たつごろー
codeseek
こみゅぷらす
Os_
ベテラン
会議室デビュー日: 2003/04/16
投稿数: 77
投稿日時: 2004-12-02 15:23
Osです。

単純な方法に、
DataTableのClone()メソッドで空のDataTableを生成し、
全レコードで ImportRow を実行する方法はあります。

ただし、リソースの問題はありますが。
ぷじょー
会議室デビュー日: 2004/07/08
投稿数: 16
投稿日時: 2004-12-02 15:31
引用:

どういう形でそのデータを保持していますか?
バインドされたGridかな。
でも1万レコードあるんですよね。



Gridではなく、データセット内のデータテーブルで保持しています。

引用:

普通にSQL書いて対応するというわけには行かない理由があるのでしょうか。



データセットの件数分ループして、SQLのInsert文を発行するより
Updateメソッド一発のほうが早いかと思いまして・・・
ぷじょー
会議室デビュー日: 2004/07/08
投稿数: 16
投稿日時: 2004-12-02 15:34
引用:

単純な方法に、
DataTableのClone()メソッドで空のDataTableを生成し、
全レコードで ImportRow を実行する方法はあります。



この前、別の処理でImportRowしたんですが、RowStateがインポート元行のRowStateを
そのまま持ってきてました。
Addedにするには、何かコツが必要ですか?
Os_
ベテラン
会議室デビュー日: 2003/04/16
投稿数: 77
投稿日時: 2004-12-02 16:40
Osです。

誤認してました。
確かにImportRowではRowStateは元のままです。
ぷじょー
会議室デビュー日: 2004/07/08
投稿数: 16
投稿日時: 2004-12-02 16:53
引用:

誤認してました。
確かにImportRowではRowStateは元のままです。



わざわざ確認までして頂いてありがとうございました。
ぷじょー
会議室デビュー日: 2004/07/08
投稿数: 16
投稿日時: 2004-12-02 16:58
もしかして・・・
データアダプターのUpdateCommandに、InsertCommandと同じものをセットしたら、
StateがModifiedの行もInsertされたりするんでしょうか??

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