Arsip: kesulitan simpan data ke 2 table sekaligus

 
user image
more 18 years ago

putukaca

saya mengalami kesulitan untuk melakukan penyimpanan data ke dalam 2 table sekaligus.kodenya sbb:

procedure TfPembelian.btSimpanClick(Sender: TObject);
Var myTime: String;
begin
  myTime:= timeToStr(now);
  //utk table notabeli
    tbNotaBeli.Insert;
    tbNotaBeli['nonota']:= edNota.Text;
    tbNotaBeli['tanggal']:= DateTimeEdit1.Date;
    tbNotaBeli['kdSuplier']:= edKdSpl.Text;
    tbNotaBeli['nofaktur']:= edNoInv.Text;
    tbNotaBeli['jmltot']:= edTotal.Text;
    tbNotaBeli['hrgtot']:= edJumlah.Text;
    tbNotaBeli['status']:= Cmb1.Text;
    tbNotaBeli['tgljatem']:= DateTimeEdit2.Date;
    tbNotaBeli['user']:= fUtama.Label2.Caption;
    tbNotaBeli['jam']:= strToTime(myTime);
    tbNotaBeli.Post;
    tbNotaBeli.Refresh;
  //utk table databeli
  tbTmpBeli.First;
  while not tbTmpBeli.Eof do
  begin
    tbBeli.Insert;
    tbBeli['nonota']:= edNota.Text;
    tbBeli['tanggal']:= DateTimeEdit1.Date;
    tbBeli['nofaktur']:= edNoInv.Text;
    tbBeli['barcode']:= tbTmpBeli['barcode'];
    tbBeli['kdbarang']:= tbTmpBeli['kdfilm'];
    tbBeli['judul']:= tbTmpBeli['judul'];
    tbBeli['hrgjual']:= tbTmpbeli['hrgjual'];
    tbBeli['banyak']:= tbTmpbeli['banyak'];
    tbBeli['jumlah']:= tbTmpBeli['jumlah'];
    tbBeli['user']:= fUtama.Label2.Caption;
    tbBeli.Post;
    tbBeli.Next;
  end;
    tbBeli.Refresh;
end;
misal di table tmpbeli ada data 5 record dan saat melakukan penyimpanan ke dalam table beli, data yang masuk ke table beli sangat banyak (mencapai ribuan lebih sampai saya matikan paksa programnya) dan hanya satu kode aja yang diulang bukan 5 record saja yang masuk. apa ada yg salah dengan kode diatas. mohon sarannya.
user image
more 18 years ago

deLogic

masalah ada di rutin table databeli, coba tbBeli.Next nya diganti dengan tbTmpBeli.Next
user image
more 18 years ago

saysansay

MAs bayu...tapi klu diliat2 dari struktur Tablenya...kok kaya yang ada redudansi ....Tapi nga tau ya...Cos Ini Hanya saran aq aja Sebelumnya Maaf Mas PutuKaca Tabel Yang ini Bentuknya Master Detail Bukan...Klu Belum Master detail ,Menurut saya sebaiknya tabel yang ini Jadiin master detail dulu...[/b]
user image
more 18 years ago

deLogic

mungkin saja bagi bro PutuKaca, NoNota dan NoInvoice adalah dua hal yang harus berbeda.. :)
user image
more 18 years ago

kaka-delphi

Yups ... kesalahannya ada di tbBeli.Next; karena putukaca melakukan looping pada tabel tbTmpBeli, karena yang di next adalah tabel tbBeli bukan tabel tbTmpBeli, maka tabel tbTmpBeli ga akan sampai pada ujung rekord walau 2 rekord sekalipun. Ini adalah looping yang tak berujung, harap diperhatikan. Solusinya adalah sepertinya yang mas bayu bilang, yaitu mengganti tbBeli.Next dengan tbTmpBeli.Next
user image
more 18 years ago

EkoIndri

kalau saran tambahan saya...
//utk table databeli tbTmpBeli.First; while not tbTmpBeli.Eof do begin tbBeli.Insert; tbBeli['nonota']:= edNota.Text; tbBeli['tanggal']:= DateTimeEdit1.Date; tbBeli['nofaktur']:= edNoInv.Text; tbBeli['barcode']:= tbTmpBeli['barcode']; tbBeli['kdbarang']:= tbTmpBeli['kdfilm']; tbBeli['judul']:= tbTmpBeli['judul']; tbBeli['hrgjual']:= tbTmpbeli['hrgjual']; tbBeli['banyak']:= tbTmpbeli['banyak']; tbBeli['jumlah']:= tbTmpBeli['jumlah']; tbBeli['user']:= fUtama.Label2.Caption; tbBeli.Post; tbBeli.Next; end;
lebih baik di trigger aja, itupun kalau database enginenya support trigger. karena dengan demikian lebih efektif
user image
more 18 years ago

fafenail

Itu berarti ntuk transaksi pembelian to? Ya benar mang ada kesalhan looping, trus ada saran sih untuk tbbeli (detail dari tbNotaBeli) sebaiknya ada primary key bisa gabungan dari nonota + kdBarang, jika klo memang dimungkinkan untuk kode barang yang sama bisa ditambahlagi misal dengan NoUrut, dimana NoUrut dihitung dari Masing2 NoNota, Maka key-nya Misal ID=NoNota+KdBarang+NoUrut Sekedar saran ditabel detail mengapa ada lagi NoNota dan NoFaktur, seharusnya cukup salah satu saja Misal NoNota saja. @EkoIndri klo aku kurang suka pakai trigger karena dengan trigger data tidak mesti valid, alias sering lepas. Aku pakai SQL server dan ga pernah pakai trigger dan selalu menghindarinya.
user image
more 18 years ago

EkoIndri

@fafenail cobalah anda untuk mengenalnya cobalah anda untuk mengetahui ketidakvalid-annya trigger tidak menyebabkan data tidak valid.... ingat mas.... mobil tidak nabrak jika tidak di tabrakkan.... begitu juga data... data tidak valid jika tidak divalidkan.... janganlah anda menghindarinya, tapi lebih baik pahamilah walupun anda tidak menggunakannya
more ...
  • Pages:
  • 1
Share to

Random Topic

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