Jump to content
Sign in to follow this  
co-pekok

Open Query With Multi Threading

Recommended Posts

pernah cuba buka banyak query yang jumlah record tiap query tu banyak betul ? boring nunggu sampai rokok abis beberapa batang ? tongue.gif . gunakan threading adalah jalan paling best biggrin.gif. senang jer nak gunakan ...

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, Grids, DBGrids, DB, ADODB;

type
  TForm1 = class(TForm)
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    ADOQuery2: TADOQuery;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    DBGrid1: TDBGrid;
    DBGrid2: TDBGrid;
    BitBtn1: TBitBtn;
    Button1: TButton;
    procedure BitBtn1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  //Thread class declaration - very simple
  TQThread = class(TThread)
  private
    FQuery: TADOQuery;
  protected
    procedure Execute; override;
  public
    constructor Create(Query: TADOQuery);
  end;
var
  Form1: TForm1;

implementation

{$R *.dfm}

uses DateUtils;

constructor TQThread.Create(Query: TadoQuery);
begin
  inherited Create(True);     //Create thread in a suspendend state so we can prepare vars
  FQuery := Query;            //Set up local query var to be executed.
  FreeOnTerminate := True;    //Free thread when finished executing
  Resume;
end;

procedure TQThread.Execute;
begin
  FQuery.DisableControls;
  FQuery.Open;                    //Perform the query
  FQuery.EnableControls;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  // ujicoba menggunakan query dibuka seperti biasa (sequential)
  ADOQuery1.Open;
  ADOQuery2.Open;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // ujicoba menggunakan thread
  TQThread.Create(ADOQuery1);
  TQThread.Create(ADOQuery2);
end;

end.

ngeh.. ngeh.. ngeh biggrin.gif nampaknya memang tak ader orang yang learn delphi yer ?

tengkyu buat google.com n about.delphi.com

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...