• 締切済み

ページング処理

すごく困っています。助けてくださいm(_ _)m VB6.0でオラクル9.0から情報をado接続でロードした時点で、全てのデータをデータグリッドに表示させています。  それを最大10件まで表示したいです。そして次へボタンをおすと次の10件を表示させたいです。戻るボタンを押すと前の10件を表示させたいです。どうしたらいいでしょうか? ado接続完了後   Set rec = cnn.Execute("select * from table") Do While Not rec.EOF 'recordsetを更新 rec.Refresh 'ADOのrecordsourceをdatagridに連結する Set DataGrid1.DataSource = rec.Recordset 見たいな感じで表示しています。  どうかよろしくお願いしますm(__)m

みんなの回答

回答No.1

いろいろなやり方があると思いますが、 (1) Oracle の ROWNUM とか ROW_NUMBER を抽出条件で指定する (2) 最初に全レコードを配列、あるいは構造体の配列に読み込む (3) ページごとに読み込み済みかどうかのフラグを持たせ、未読のページなら ROWNUM とか ROW_NUMBER を指定して配列などに読み込む とかでしょうか。 パフォーマンスの問題や、工数、メンテナンス性(簡単なロジックかどうか)といった問題もあるでしょうから、それらのバランスが取れた方法をとるとよいかと。 ROWNUM、ROW_NUMBER の使用方法は http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sq_kj04_2.htm が参考になると思います。

参考URL:
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sq_kj04_2.htm

関連するQ&A