如何使Dbgrid的記錄分頁顯示? |
缺席
|
mathewzhao
中階會員 發表:121 回覆:164 積分:67 註冊:2003-04-04 發送簡訊給我 |
各位先進好!
我用ADOquery將查詢的結果在Dbgrid顯示(將veritical的ScrollBar隱藏),不知道能否使用使用ADO的RecordSet分頁瀏覽的功能將查詢的結果在Dbgrid分頁顯示. 謝謝!
...
variant1:variant
variant2:variant
...
variant1:=CreateOLEObject('ADODB.Connection');
variant1.Open('Provider=Microsoft.Jet.OLEDB.4.0;.....');
variant2:=CreateOLEObject('ADODB.RecordSet');
variant2.Open('RECORDS',variant1,3,1);
variant2.PageSize:=10;//每頁顯示記錄個數 ....
|
pgdennis
資深會員 發表:41 回覆:526 積分:443 註冊:2002-05-23 發送簡訊給我 |
目前測試的結果是只有在formcreate event中放入以下的code有用外,放在其他地方均無效??,你可以自行試試看,還試不出像 class="code">
procedure TForm1.FormCreate(Sender: TObject);
begin
adoquery1.Open;
adoquery1.Recordset.PageSize:=5;
adoquery1.Recordset.AbsolutePage:=3;
end; 永遠追不上技術更新的速度
------
星期一,二...無窮迴圈@@ |
mathewzhao
中階會員 發表:121 回覆:164 積分:67 註冊:2003-04-04 發送簡訊給我 |
首先感謝前輩的熱心回應!
其次將這兩天查找資料的結果如下: 目前還沒有找到在DBgrid分頁顯示的方法,但是找到一個在StringGrid分頁顯示的方法.(完整的內容可以參閱李維大師的delphi5.x資料庫三部曲之專業程式設計篇中的fTesTMain.pas範例,我稍做改變): 請各位先進指點,看是否能將DBgrid也可以分頁顯示,謝謝! 在Uses中加入: ADOInt
//首先設定PageSize,取出PageCount procedure TForm1.Button1Click(Sender: TObject); begin ADoquery1.Recordset.PageSize :=spinedit1.Value; Edit1.Text := IntToStr(ADoquery1.Recordset.PageCount); ShowData(spinedit2.Value); end; //然後將AbsolutePage的資料乾坤大挪移到StringGrid1中 procedure TForm1.ShowData(page:integer); var iRow, iCol, iCount : Integer; rs : ADOInt.Recordset; begin ADoquery1.Recordset.AbsolutePage:=Page; Currpage:=page; iRow := 0; iCol := 1; stringgrid1.Cells[iCol, iRow] := 'FixedCol1'; Inc(iCol); stringgrid1.Cells[iCol, iRow] := 'FixedCol2'; Inc(iRow); Dec(iCol); rs := adoquery1.Recordset; for iCount := 1 to SpinEdit1.Value do begin stringgrid1.Cells[iCol, iRow] := rs.Fields.Get_Item('FieldName1').Value; Inc(iCol); stringgrid1.Cells[iCol, iRow] := rs.Fields.Get_Item('FieldName1').Value; Inc(iRow); Dec(iCol); rs.MoveNext; end; //上一頁 procedure TForm1.Button2Click(Sender: TObject); begin If (CurrPage)<>1 then ShowData(CurrPage-1); end; //下一頁 procedure TForm1.Button3Click(Sender: TObject); begin If CurrPage<>ADoquery1.Recordset.PageCount then ShowData(CurrPage 1); end;Ps: 折騰半天,無意間想起去翻翻李維大師的這本書,發現大師早就談過這個問題.還是那幾段話,原來看上去感覺幹巴巴的,現在覺得字字珠璣,句句都鞭辟入理.感覺是既興奮又懊悔. 發表人 - mathewzhao 於 2003/08/28 16:15:17 發表人 - mathewzhao 於 2003/08/28 18:20:51 |
reebokmonkey
一般會員 發表:44 回覆:73 積分:23 註冊:2003-08-06 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |