Arsip: Menampilkan progress-bar saat fetch data besar

 
user image
more 16 years ago

DelphiExpert

beberapa rekan banyak yg menanyakan, ada jg yg nanya via YM... iseng2 daku explore event2 milik TADOQuery --> TADOConnection atau CodeGear menyebutnya DBGo pd Delphi2007 (BDS juga kali' ya)... utk menampilkan progress-bar, anda bisa memanfaatkan event OnFetchProgress milik TADOQuery...

unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, StdCtrls, ComCtrls;
type
  TForm1 = class(TForm)
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    ProgressBar1: TProgressBar;
    Label1: TLabel;
    procedure ADOQuery1FetchProgress(DataSet: TCustomADODataSet; Progress,
      MaxProgress: Integer; var EventStatus: TEventStatus);
    procedure ADOQuery1FetchComplete(DataSet: TCustomADODataSet;
      const Error: Error; var EventStatus: TEventStatus);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ADOQuery1FetchComplete(DataSet: TCustomADODataSet;
  const Error: Error; var EventStatus: TEventStatus);
begin
  if EventStatus <> esOK then
    MessageDlg(Format('Source: %s%sDesc: %s', ), mtError, [mbOK], 0);
  Close;
end;
procedure TForm1.ADOQuery1FetchProgress(DataSet: TCustomADODataSet; Progress,
  MaxProgress: Integer; var EventStatus: TEventStatus);
begin
  if EventStatus = esOK then
  begin
    ProgressBar1.Max:= MaxProgress;
    ProgressBar1.Position:= Progress;
  end;
  Application.ProcessMessages;
end;
end.
user image
more 16 years ago

zieborg

wah.., sering kutak-kutik ADO ga nyadar ada event ini nih... mesti explore lagi dah, kamsia..kamsia.. :D
user image
more 16 years ago

deLogic

btw.. bagaimana efek dari penggunaan event onFetchProgress atau sejenis.. apakah ada penurunan performance (performance penalty)? dan seberapa besar? saya belum mencoba hal ini di ADO, tapi hal serupa juga disediakan oleh komponen middleware yg sedag daku pake, dan terdapat penurunan performance, walaupun tidak besar. Tapi saya rasa untuk data besar, jika penalty tersebut cukup kecil, tidak mengapa, karena tujuannya lebih ke 'visual feedback'.
user image
more 16 years ago

EkoIndri

Kalau saya sih dah tahu sejak lama...... tapi hati2 dalam penggunaan onfetchProgress setahu saya untuk D7 hanya bisa digunakan pada ADODataset. Kemudian untuk mendapatkan progress yang bagus, dataset jangan langsung dikoneksikan dengan Grid, lebih baik saat fetching di disconect, setelah fetching selesai baru dikoneksikan lagi datasetnya ke dbgrid. Untuk mendapatkan performance yang bagus saat fetching, silahkan anda atur executeoptions-nya agar didapatkan fetching yang smooth
user image
more 16 years ago

DelphiExpert

benar yg dikatakan sodara @EkoIndri... TDataset telah menyediakan DisableControls & EnableControls utk men-disables data display in data-aware controls associated with the dataset. tanpa perlu secara fisik men-disconnect dataset ke data-aware (DBGrid, DBEdit dll).
user image
more 16 years ago

Kecret

Waduhhhh..... Kalo saya sich BLUM tau sejak lama...... :mrgreen: tips2 yg bagusss...... huebat pisan oeyyyy..... tararengyu....
more ...
  • Pages:
  • 1
Share to

Random Topic

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com