Arsip: TQuery yg bisa Cacheupdate..

 
user image
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
user image
more 11 years ago

Penjahat

Halo wati.... kamu menggunakan database apa? kalo databasenya mendukung coba pakai transaction START ROLLBACK COMMIT dan sebangsanya -- thanks
user image
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
user image
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
user image
more 11 years ago

wati

Mas Denmas, tolong kasih contoh cara 1 pernah....blum tahu nih..thanks ya...
user image
more 11 years ago

denmasdanang

@wati: Mas Denmas, tolong kasih contoh cara 1 pernah....blum tahu nih..thanks ya...
ok pertama seperti ini : 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 )
procedure 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 :
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;

untuk menghapus data dari listview seperti ini :
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;
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;
untuk insert ke table master bisa langsung insert query seperti biasa semoga membantu :D
user image
more 11 years ago

wati

Mas Den... makin pusink...kasih contoh source tadi pemakaianya dunk..hahahaha..
user image
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
user image
more 11 years ago

wati

Mas Den,mana contoh form nya nih.... kirim ke email aq ya... wati.tang@gmail.com ...thanks...
user image
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
Share to

Random Topic

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