VB6SP6にてDataGridを使用してアプリケーションを作成しています。
DataGridについて以下質問のご回答をよろしくお願い致します。
(1)DataGridへの最大表示レコード件数は最大で何件でしょうか?
(2)DataGridへDBより取得したレコードを表示する際に、
あらかじめ指定したレコード数以上は表示しないように制御可能でしょうか?
例)DataGridの最大表示数を100件に設定
DBより取得したレコードが200件の場合、最初の100件のみ出力
※DataGridはADO接続をしています。
以上、ご回答をよろしくお願い致します。
> (1)DataGridへの最大表示レコード件数は最大で何件でしょうか?
特に明示的な制限は無いと思いますよ。少なくとも実用的な範囲では。
試しに、下記のようなコードでチェックしてみましたが、
百万件のレコードも表示できましたし。(多すぎて操作しずらいですが…)
Private rs As ADODB.Recordset
Private Sub Form_Load()
Set rs = New ADODB.Recordset
rs.Fields.Append "TEST", adInteger
rs.Open
Dim L As Long
For L = 1 To 1000000
rs.AddNew "TEST", L
Next
Set DataGrid1.DataSource = rs
End Sub
> (2)DataGridへDBより取得したレコードを表示する際に、
> あらかじめ指定したレコード数以上は表示しないように制御可能でしょうか?
SQL 側で制限をかければ良いのではないでしょうか。
たとえば SQL Server / Jet / ACE なら、SELECT 時に TOP 句を指定するとかで。
魔界の仮面弁士、ご回答ありがとうございます。
> 特に明示的な制限は無いと思いますよ。少なくとも実用的な範囲では。
今回のケースでは100万件のデータが表示できれば大丈夫です。
ご確認どうもありがとうございました。
> SQL 側で制限をかければ良いのではないでしょうか。
> たとえば SQL Server / Jet / ACE なら、SELECT 時に TOP 句を指定するとかで。
SQLで制限することは考えつきませんでした。
今回のケースではDBはOracleでTOP句は使用できないため、以下のようにして対応することにしました。
select * from TESTTABLE WHERE ROWNUM BETWEEN 1 AND 100
以上、ご回答どうもありがとうございました。
ツイート | ![]() |