- PR -

ORACEからデータ取得

投稿者投稿内容
カウンター
大ベテラン
会議室デビュー日: 2004/02/19
投稿数: 123
投稿日時: 2004-02-23 21:07
[OS]winXP
[DB]oracle9i

例えば select testA,testB from TEST というSQL文を
実行した結果をレコードセットのようなものにセットするにはどうすればよいのでしょうか?
最終的には取得したデータをフィクスグリッドにセットしたいのです。
いろいろ調べた結果、OracleCommandにSQL文を渡してExecuteReaderメソッドの結果を
OracleDataReaderオブジェクトにセットするような気がするのですが
いまいち、やり方が分かりません。
よろしくお願いします。

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-23 23:26
引用:

カウンターさんの書き込み (2004-02-23 21:07) より:

いろいろ調べた結果、OracleCommandにSQL文を渡してExecuteReaderメソッドの結果を
OracleDataReaderオブジェクトにセットするような気がするのですが
いまいち、やり方が分かりません。


 どこを調べました?MSDNにサンプルはあるし、@ITにもサンプルというか、tipsがあるんですけど?

 こう書くのは、「答え」ではなく「方法」を示したいからです。おそらく、ここで回答しているほとんどの人がそうです。そして「方法」を示すためには、どんなところを、どのように調べて、何がわからないのか、知りたいのです。
 これはあなたの理解度を強めるためだけでなく、回答者の理解度や説明のテクニック上達につながります。
 また、できたことを報告することで、質問したいけど書き方がわからない人、後から疑問に思った人への回答にもなります。
 よろしくご協力のほど、お願いします。
カウンター
大ベテラン
会議室デビュー日: 2004/02/19
投稿数: 123
投稿日時: 2004-02-24 09:23
Jittaさんアドバイスありがとうございます。
今回はOracleDataReaderクラスについて.NET Frameworkクラスライブラリを
調べてました。
不明なのは、SQLの結果を何に格納して、どのように参照するかです。
よろしくお願いします。 
ぢゃん♪
大ベテラン
会議室デビュー日: 2003/06/12
投稿数: 208
お住まい・勤務地: 都内
投稿日時: 2004-02-24 09:34
引用:

カウンターさんの書き込み (2004-02-24 09:23) より:

不明なのは、SQLの結果を何に格納して、どのように参照するかです。


一体どこを調べたら「不明」なのでしょうか?
MSDN(.NET Framework クラス ライブラリ) : OracleDataReader クラスにもちゃんと使用例があるんですけど。

[ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2004-02-24 09:37 ]
カウンター
大ベテラン
会議室デビュー日: 2004/02/19
投稿数: 123
投稿日時: 2004-02-24 10:45
引用:

ぢゃん♪さんの書き込み (2004-02-24 09:34) より:
一体どこを調べたら「不明」なのでしょうか?
MSDN(.NET Framework クラス ライブラリ) : OracleDataReader クラスにもちゃんと使用例があるんですけど。


ぢゃん♪さんありがとうございます。
今回データが取得できていないと思っていたのは、OracleDataReaderにExecuteReaderを
セットした後で一度Readメソッドを実行しなければならないことに気づかなかったためでした。
カウンター
大ベテラン
会議室デビュー日: 2004/02/19
投稿数: 123
投稿日時: 2004-02-24 11:34
ちなみに、SQLの結果をセットしたOracleDataReaderを
FlexGridのデータソースにセットにセットしたいのですが

Me.flexGrid.DataSource = myreader

としたのですが、何も表示されませんでした。

DataSetの場合とは違い、1レコードずつセットしなければならないのでしょうか?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-24 12:06
 DataSourceを設定した後に、DataBindしなければなりません。必要なら、Bind前にDataMemberも設定します。
#他のコントロールと同じならば。。。
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-02-24 12:07
flexGrid.DataSourceには「読み込んだ結果」を渡さなければならないのですが
OracleDataReaderは「読み込んだ結果」ではなく「読み込み」を表しています

なので
>DataSetの場合とは違い、1レコードずつセットしなければならないのでしょうか?
1件づつ「読み込み」をしてFlexGridに設定しないといけません。

ただもう一度FlexGridとDataSetとDataAdapterの関係を調べてみるといいかもしれません。
その上でどの方法が良いか検討してみてはでしょうか?

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