Arsip: TQuery yg bisa Cacheupdate..

more 11 years ago
wati
Para Master Delphi...ada yg tahu gimana caranya TQuery itu bisa di gunakan sebagai Cacheupdates? caranya gimana ya?
Misal sy ada 2 statement query nya
query pertama itu update jual set qty = qty - jualqty where kodebarg = 'a'
query kedua itu update jual set qty = qty - jualqty where kodebrg = 'b'
gimana caranya pake TQuery pada query di atas di jadikan cacheupdates dulu
setelah dua statement di atas dijalankan berhasil baru gw pakai applyupdates...
mohon pencerahannya..thanks

more 11 years ago
Penjahat
Halo wati....
kamu menggunakan database apa?
kalo databasenya mendukung coba pakai
transaction
START
ROLLBACK
COMMIT
dan sebangsanya
-- thanks

more 11 years ago
wati
pake paradox bisa TQuery cacheupdates ga? misal
update stok
set qty = qty- quantity
where kodebarang= blabla bla
terus ada
update stok
set qty = qty - quantity
where kodebrg = bla bla
kalo uda sukses baru di applyupdates TQuerynya...
apakah bisa gitu kah di paradox???
mohon pencerahannya....thanks

more 11 years ago
denmasdanang
@wati: pake paradox bisa TQuery cacheupdates ga? misal update stok set qty = qty- quantity where kodebarang= blabla bla terus ada update stok set qty = qty - quantity where kodebrg = bla bla kalo uda sukses baru di applyupdates TQuerynya... apakah bisa gitu kah di paradox??? mohon pencerahannya....thanks:wati ada beberapa cara yang bisa digunakan: 1. proses preparation data sebelum appy tidak menggunakan dataset melainkan menggunakan komponen lain seperti listview, tetapi agak ribet penggunaannya ( kalau mau ada contoh codenya ) Keuntungan : - proses simpan/update record hanya dilakukan bila data sudah benar ( sesuai keinginan ) - tidak membutuhkan open koneksi terus menerus - leluasa dalam pengelolaan data inputan Kekurangan: - kesannya ribet, dan tidak efisien - code tidak simple 2. tetap menggunakan dataset, tetapi menyiapkan table temporary yang identik dengan table yang akan diolah, tentu dengan nama table random/tidak sama dengan table asli, table temp akan di drop ketika proses apply dilakukan keuntungan : - tatap leluasa editing data, dan memastikan data yang terbaru sudah benar2 ok - code simple Kekurangan: - membebani DB setiap kali akan melakukan editing/insert record gmn? :D

more 11 years ago
bikin listview seperti diatas : kemudian bikin kolom yang mewakili field dalam table
disini semua textbox bukan component data control jadi tidak terhubung dengan dengan DB.
setelah semua data terisi untuk melakukan insert ke listview seperti ini :
( contoh saja )
denmasdanang
@wati: Mas Denmas, tolong kasih contoh cara 1 pernah....blum tahu nih..thanks ya...ok pertama seperti ini :

untuk insert ke table master bisa langsung insert query seperti biasa semoga membantu :Dprocedure TfrmJurnalUmum.btnInputTopClick(Sender: TObject); var ListItem: TListItem; iDebet, iKredit : Real; begin if (txtNUMNilai.Value <= 0) or (cmbLookUpAccount.Text = '') then begin MessageDlg('Data isian Belum Lengkap...', mtError, [mbOK], 0); Exit; end; // komplitkan data if trim(txtKeteranganDETAIL.Text) = '' then txtKeteranganDETAIL.Text := '-'; iDebet := 0; iKredit := 0; if chkDebet.Checked then iDebet := txtNUMNilai.Value else iKredit := txtNUMNilai.Value; ListItem := lvJurnal.Items.Add; ListItem.Caption := '-'; ListItem.SubItems.Add(IntToStr(lvJurnal.Items.Count)); //no urut ListItem.SubItems.Add(qryLookUPCOA.FieldByName('ID_Account').AsString); // No account ListItem.SubItems.Add(cmbLookUpAccount.Text); // nama account ListItem.SubItems.Add(FormatFloat(txtNUMNilai.DisplayFormat,iDebet)); // debet ListItem.SubItems.Add(FormatFloat(txtNUMNilai.DisplayFormat,iKredit)); // Kredit ListItem.SubItems.Add(txtKeteranganDETAIL.Text); // keterangan ListItem.Selected := true; // bersihkan isian txtNUMNilai.Clear; //txtKeteranganDETAIL.Clear; HitungTotal; end;[/code:1:abac1297a1] untuk melakukan edit data dari Listview yang sudah di-insert, maka sebelumnya data di listview harus ditampilkan lagi ( lihat pada gambar event onClick ) contoh :
untuk menghapus data dari listview seperti ini :procedure TfrmJurnalUmum.lvJurnalClick(Sender: TObject); begin try if (lvJurnal.Selected.Selected and (lvJurnal.Items.Count > 0)) then begin if StrToFloat(FormatFireBIRDNumber(lvJurnal.Selected.SubItems[3])) > 0 then begin // bila debet txtNUMNilai.Text := lvJurnal.Selected.SubItems[3]; chkDebet.Checked := True; end else begin txtNUMNilai.Text := lvJurnal.Selected.SubItems[4]; chkKredit.Checked := true; end; cmbLookUpAccount.Text := lvJurnal.Selected.SubItems[2]; txtKeteranganDETAIL.Text := lvJurnal.Selected.SubItems[5]; end; except end; end; [/code:1:abac1297a1] setelah semua data tampil dan diedit, proses update ke listview seperti ini : [code:1:abac1297a1]procedure TfrmJurnalUmum.btnInputCenterClick(Sender: TObject); var iDebet, iKredit : Real; begin if (txtNUMNilai.Value <= 0) or (cmbLookUpAccount.Text = '') then begin MessageDlg('Data isian Belum Lengkap...', mtError, [mbOK], 0); Exit; end; // komplitkan data
if trim(txtKeteranganDETAIL.Text) = '' then txtKeteranganDETAIL.Text := '-'; iDebet := 0; iKredit := 0; if chkDebet.Checked then iDebet := txtNUMNilai.Value else iKredit := txtNUMNilai.Value; if lvJurnal.Selected.Selected then begin //lvPajak.Items[0].SubItems[2] := 'danang'; lvJurnal.Selected.SubItems[1] := qryLookUPCOA.FieldByName('ID_Account').AsString; lvJurnal.Selected.SubItems[2] := cmbLookUpAccount.Text; lvJurnal.Selected.SubItems[3] := FormatFloat(txtNUMNilai.DisplayFormat,iDebet); lvJurnal.Selected.SubItems[4] := FormatFloat(txtNUMNilai.DisplayFormat,iKredit); lvJurnal.Selected.SubItems[5] := txtKeteranganDETAIL.Text; HitungTotal; end; end;setelah semua data sudah benar, maka dapat dilakukan proses simpan ke database seperti ini : ( contoh saja saya ambilkan dari codingan, malas mau ngeditnya ) :D [code:1:abac1297a1] for i := 0 to lvJurnal.Items.Count -1 do begin if rdoUSD.Checked then begin iRupiahDebet := FloatToStr(StrToFloat(FormatFireBIRDNumber(lvJurnal.Items[i].SubItems[3])) numKursSaatIni.Value); iRupiahKredit := FloatToStr(StrToFloat(FormatFireBIRDNumber(lvJurnal.Items[i].SubItems[4])) numKursSaatIni.Value); end else begin iRupiahDebet := FormatFireBIRDNumber(lvJurnal.Items[i].SubItems[3]); iRupiahKredit := FormatFireBIRDNumber(lvJurnal.Items[i].SubItems[4]); end; // insert jurnal UMUM DETAIL* UpdateQuery('insert into "LAM_Jurnal_Umum_DETAIL"' +' ("LAM_Jurnal_Umum_DETAIL"."ID_Jurnal_Umum",' +' "LAM_Jurnal_Umum_DETAIL"."JRL_Debet",' +' "LAM_Jurnal_Umum_DETAIL"."JRL_Kredit",' +' "LAM_Jurnal_Umum_DETAIL"."JRL_Keterangan",' +' "LAM_Jurnal_Umum_DETAIL"."JRL_Currency",' +' "LAM_Jurnal_Umum_DETAIL"."JRL_KursUSD",' +' "LAM_Jurnal_Umum_DETAIL"."ID_Account") values(' + QuotedStr(txtKodeJurnal.Text) //+ ', ' + FormatFireBIRDNumber(lvJurnal.Items[i].SubItems[3]) //+ ', ' + FormatFireBIRDNumber(lvJurnal.Items[i].SubItems[4]) + ', ' + iRupiahDebet + ', ' + iRupiahKredit + ', ' + QuotedStr(lvJurnal.Items[i].SubItems[5]) + ', ' + QuotedStr(grbMataUang.Hint) + ', ' + FormatFireBIRDNumber(numKursSaatIni.Value) + ', ' + QuotedStr(lvJurnal.Items[i].SubItems[1])+ ')'); end;procedure TfrmJurnalUmum.btnInputBottomClick(Sender: TObject); begin try if (lvJurnal.Selected.Selected and (lvJurnal.Items.Count > 0)) then begin if MessageDlg('Ingin menghapus data ini..?', mtConfirmation, [mbYes,mbNo], 0) = mrNo then exit; lvJurnal.Selected.Delete; lvJurnal.Repaint; HitungTotal; end; except end; end;

more 11 years ago
wati
Mas Den... makin pusink...kasih contoh source tadi pemakaianya dunk..hahahaha..

more 11 years ago
denmasdanang
@wati: Mas Den... makin pusink...kasih contoh source tadi pemakaianya dunk..hahahaha..ok wati akan saya kirim salah satu form.pas sebagai contoh, semoga membantu radenmaskucing@gmail.com :D

more 11 years ago
wati
Mas Den,mana contoh form nya nih.... kirim ke email aq ya... wati.tang@gmail.com ...thanks...

more 11 years ago
denmasdanang
@wati: Mas Den,mana contoh form nya nih.... kirim ke email aq ya... wati.tang@gmail.com ...thanks...iya mbak wati maaf masih liburan, bentar yah, tak cari dulu
more ...
- Pages:
- 1
- 2
reply |
Report Obsolete
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 3 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 4 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 11 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 11 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 11 years ago
Random Topic
- Wait for file lock released
by danieljun in Tip n Trik Pemrograman more 16 years ago - Masalah di DBGrid yang memakai lebih dari 1 TQuery
by Random in Hal umum tentang Pascal Indonesia more 16 years ago - update per jam..?
by nurez in Tip n Trik Pemrograman more 16 years ago - access ke foxpro
by idhiel in Tip n Trik Pemrograman more 11 years ago - runtime error 217
by taruna in Tutorial & Community Project more 16 years ago - string 255 element????
by or4n3 in Tip n Trik Pemrograman more 15 years ago - Pencarian Eror and berhenti jika Filenya lagi di Pake
by avatar_eng in Tip n Trik Pemrograman more 15 years ago - Load Data Besar, Gimana ?
by budi_bunga in MySQL more 16 years ago - update dari nilai tabel lain
by nurez in MySQL more 16 years ago - Akhirnya lulus juga
by NiceDream in OOT more 15 years ago