Arsip: Ask: Open Query With Multi Thread

more 19 years ago
cyber_hecker
mo nanya neh... :P
pertama saya merancang sebuah form, yang terdiri dari 2 grid, yang nantinya tiap-tiap dbGrid menggunakan query yang berbeda.
nah.. untuk meload / open satu query, dibutuhkan waktu 5 detik. jadi kalo kita ingin membuka kedua query, dibutuhkan total waktu 10 detik.
pertanyaan : bisa gak kita membuka query tersebut dengan menggunakan kayak multi thread, jadi dalam satu waktu kedua-duanya di proses secara bersamaan. kalo bisa, gimana contoh kodingnya ? kalo koding ku yang sekarang sebagai berikut :

with QMain do
begin
SQL.Clear;
SQL.LoadFromFile(ExtractFilePath(ParamStr(0))+'QUERY\q_kegiatanfarmasi1.sql');
Parameters[0].Value := maskTglAwal.Text;
Parameters[1].Value := maskTglAkhir.Text;
try
Open;
except
on e: Exception do
MessageDlg(E.ClassName +#10#13+
E.Message +#10#13+
'Gagal Membuka Tabel !!',
mtError, [mbOK], 0);
end;
end;
with QMain2 do
begin
SQL.Clear;
SQL.LoadFromFile(ExtractFilePath(ParamStr(0))+'QUERY\q_kegiatanfarmasi2.sql');
Parameters[0].Value := maskTglAwal.Text;
Parameters[1].Value := maskTglAkhir.Text;
try
Open;
except
on e: Exception do
MessageDlg(E.ClassName +#10#13+
E.Message +#10#13+
'Gagal Membuka Tabel !!',
mtError, [mbOK], 0);
end;
end;

more 19 years ago
kaka-delphi
Wah kayaknya seru tuch.
Tapi (klo mnurut saya nich) sama aja kayaknya, pas ketika kita buat thread baru buat QMain dan QMain2, dia akan menyelesaikan dulu proses yang pertama dibuat. Misal thread QMain yang pertama dibuat, maka proses tersebut diselesaikan dulu terus menuju ke proses QMain2.
Pusing ach..... ilmuku belum nyampe sana. Paling biasa buat thread yang looping berulang aja.
Sok atuh para seniornya Unjuk Gigi (Ulil, deLogic, ZeAL, masdi2t, eko_elits, dll) terutama pa deLogic yang suka otak atik Dalem-an-nya Delphi dan ZeAL yang ber-thread dengan game-nya.
Wakakakakkakaak...... ;) ;) ;)

more 19 years ago
kaka-delphi
Saya juga jadi tertantang nich ... ce ileh :mrgreen: :mrgreen:
Koding dulu ach .... biar ga sepi

more 19 years ago
fafenail
Itu baru bicarakan ma temenku tadi siang, aku juga ada kasus yang sama, di Delphi 7, TAnimate dan Progressbar itidak mau jalan bareng saat load tabel, Tapi di Delphi 6 Ga masalah, Trus klo aplikasi dijalankan di windows 98 ga masalah, di XP Animate ga mau. Mungkin gara2 Manifast. Karena aku pindah ke Delphi 7 juga belum lama baru 1 Bulan ini. Hehehe. Tapi di Delphi 2005 belum diuji coba karena aku ga suka tampilannya yang terlalu penuh pakai monitor 15", Hehehhehe

more 19 years ago
EkoIndri
sebenernya ada teknik simple untuk atasi kayak gitu...
kalau kita menggunakan sleep, maka kita akan mengalami kasus seperti CH katakan
ini trejadi karena thread masih dikunci
coba jika kita gunakan timer... apa yang terjadi ?????
kedua query akan dijalankan tidak bersamaan
namun bukan berarti menunggu query pertama selesai dulu baru kedua
query kedua akan diproses hanya beda waktu milisekon aja....
semoga membantu...
memang bener, jika kita bisa bermain dengan thread dengan bener
kita bisa membuat proses transaksi ataupun proses yang lain jadi cepat.

more 19 years ago
kaka-delphi
Wah musti coba nich trik nya. Tapi ada sample kodingnya ga mas eko ;)
kekekekkekeke............

more 19 years ago
wah ternyata gak sesulit yang dibayangkan. rupanya setelah tau, caranya lumayan sederhana neh.. :
, thanks a lot for little knowledge-nya. wakakakak
cyber_hecker

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.
oom google, dan tante http://delphi.about.com/, you are soooo cool... 


more 19 years ago
deLogic
ya udah kalo dah isa... jadi gw gak perlu turun tangan.. karena kayaknya nama gw disebut2 neh... wakakaka.. kabur lagi... :d
more ...
- Pages:
- 1
reply |
Report Obsolete
AI Forward

🚀 We're thrilled to partner with Alibaba Cloud for "AI Forward - Alibaba Cloud Global Developer Summit 2025" in Jakarta! Join us and explore the future of AI. Register now:
https://int.alibabacloud.com/m/1000400772/
#AlibabaCloud #DeveloperSummit #Jakarta #AIFORWARD
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 4 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 5 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 12 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 12 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 12 years ago
Random Topic
- Akses webcam lewat jaringan line telepon...bisa gak??
by dwiest in Network, Files, I/O & System more 15 years ago - cara mendapatkan status component yang berada di scrollbox
by BLie2000 in Tip n Trik Pemrograman more 17 years ago - Format Isi Field
by xproof in Tip n Trik Pemrograman more 16 years ago - Simpan file multimedia ke database
by myluqman in Multimedia & Graphic Enhancement more 17 years ago - membuat video player, dengan Delphi???anyone can help me???
by johnizzy in Multimedia & Graphic Enhancement more 16 years ago - mendeteksi Flash Disk/removeable disk laennya....
by s373n in Network, Files, I/O & System more 16 years ago - join table
by ags606 in Hal umum tentang Pascal Indonesia more 18 years ago - Button bentuk bulat
by kabuki_enemy in Tip n Trik Pemrograman more 16 years ago - pengurangan jam/menit/detik
by esti_g in Hal umum tentang Pascal Indonesia more 17 years ago - client socket
by e_soep in Tip n Trik Pemrograman more 17 years ago