- - PR -
RDBのテーブルをDataSet経由で別のテーブルに出力したい
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 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-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 こみゅぷらす | ||||||||
|
投稿日時: 2004-12-02 15:23
Osです。
単純な方法に、 DataTableのClone()メソッドで空のDataTableを生成し、 全レコードで ImportRow を実行する方法はあります。 ただし、リソースの問題はありますが。 | ||||||||
|
投稿日時: 2004-12-02 15:31
Gridではなく、データセット内のデータテーブルで保持しています。
データセットの件数分ループして、SQLのInsert文を発行するより Updateメソッド一発のほうが早いかと思いまして・・・ | ||||||||
|
投稿日時: 2004-12-02 15:34
この前、別の処理でImportRowしたんですが、RowStateがインポート元行のRowStateを そのまま持ってきてました。 Addedにするには、何かコツが必要ですか? | ||||||||
|
投稿日時: 2004-12-02 16:40
Osです。
誤認してました。 確かにImportRowではRowStateは元のままです。 | ||||||||
|
投稿日時: 2004-12-02 16:53
わざわざ確認までして頂いてありがとうございました。 | ||||||||
|
投稿日時: 2004-12-02 16:58
もしかして・・・
データアダプターのUpdateCommandに、InsertCommandと同じものをセットしたら、 StateがModifiedの行もInsertされたりするんでしょうか?? |