Arsip: bagaimana perintah sql untuk update 2 tabel yang berbeda

 
user image
more 13 years ago

ricky_seldjatem

query2.Edit; query2.FieldByName('jml_pinjam').Asfloat := query2.fieldbyname('jml_pinjam').AsFloat - query3.fieldbyname('potongan').AsFloat; query2.Post; bagaimana merubah perintah diatas memakai perintah update(sql) ? terima kasih
user image
more 13 years ago

Bahrul_power

Mungkin seperti ini :

  With Query1 do
  begin
     if active=true then close;
     SQL.clear;
     SQL.Add('select potongan from potongan where nasabahid=1');
     open;
     With Query2 do
     begin
       if active=true then close;
       SQL.clear;
       SQL.Add('Update nasabah set tot_pinjaman=tot_pinjaman- :pj '+
               'where nasabahid=1');
       prepared;
       parameters[0].Value := DM.Q1.fields[0].AsString;
       execsql;
     end;
  end;
user image
more 13 years ago

ricky_seldjatem

saya sudah ikutin sesuai petunjuk, tapi masih ada error, messagenya "List Index out Bound" itu kenapa ya ? listing programnya seperti dibawah ini : procedure TFGajiPegawai.SimpanClick(Sender: TObject); begin query3.SQL.Clear; query3.SQL.Add('insert into gaji(no_slip,tgl,nopeg,nama,status,jabatan,gaji,tunjangan, ' + ' bonus,kd_pinjam,jml_pinjam,potongan,jml_hadir,total) values (:no_slip, ' + ' :tgl,:nopeg,:nama,:status,:jabatan,:gaji,:tunjangan,:bonus,:kd_pinjam,:jml_pinjam, ' + ' :potongan,:jml_hadir,:total)'); query3.Prepare; query3.parambyname('no_slip').AsString:=edit1.Text; query3.parambyname('tgl').AsString:=edit2.Text; query3.parambyname('nopeg').AsString:=edit3.Text; query3.parambyname('nama').AsString:=edit4.Text; query3.parambyname('status').AsString:=edit14.Text; query3.parambyname('jabatan').AsString:=edit5.Text; query3.parambyname('gaji').AsString:=edit6.Text; query3.parambyname('tunjangan').AsString:=edit7.Text; query3.parambyname('bonus').AsString:=edit8.Text; query3.parambyname('kd_pinjam').AsString:=edit9.Text; query3.parambyname('jml_pinjam').AsString:=edit10.Text; query3.parambyname('potongan').AsString:=edit11.Text; query3.parambyname('jml_hadir').AsString:=edit12.Text; query3.parambyname('total').AsString:=edit13.Text; query3.ExecSQL; query3.SQL.Clear; query3.SQL.Add('select potongan from gaji where no_slip=1'); query3.Open; query2.sql.Clear; query2.SQL.Add('Update pinjam set jml_pinjaman=jml_pinjam - potongan where no_slip=1'); query2.Prepare; query2.Params[0].Value := query3.Fields[0].AsString; query2.ExecSQL; query3.Open; query2.Open; end;
user image
more 13 years ago

Manz

dikau mau isi parameter ke query2 sedangkan di query2 tidak ada parameter ... gimana nih :mrgreen:
user image
more 13 years ago

DelphiExpert

yup, di query terakhir:

'Update pinjam set jml_pinjaman=jml_pinjam - potongan where no_slip=1'
user image
more 13 years ago

mas_kofa

siapa tahu jd mudah dianalisa-nya.........prog saya rubah..jika error...ya paling2 nasib aja..yg lg apes...

query2.sql.Clear;
query2.SQL.Add('Update pinjam set jml_pinjaman=jml_pinjam - :potongan where no_slip=1');
query2.Prepare;
query2.ParamByName('potongan').AsString := query3.FieldbyName('potongan').AsString;
query2.ExecSQL; 
user image
more 13 years ago

ricky_seldjatem

saya sudah rubah syntaxnya menjadi seperti dibawah ini tetapi messagenya masih tetap "list index out of bound (2), artinya apa ya ? query3.SQL.Clear; query3.SQL.Add('select potongan from gaji where no_slip=1'); query3.Open; query2.sql.Clear; query2.SQL.Add('Update pinjam set jml_pinjaman=jml_pinjam - :potongan where no_slip=1'); query2.Prepare; query2.FieldByName('jml_pinjam').AsFloat := query3.Fields[2].AsFloat; query2.ExecSQL; query3.Open; query2.Open; ket : dimana fields[2] didalam query3 adalah : field jml_pinjam tolong dong master delphi untuk coding seperti diatas bagaimana, agar ketika saya masukin jumlah pinjaman dlm query3 maka jumlah pinjaman pd query 2 juga secara otomatis berubah. terima kasih
user image
more 13 years ago

bobby_pro

Perintah query untuk potongan itu field ke 0, query3.Fields[2].AsFloat; ganti dengan query3.Fields[0].AsFloat; atau saudara ricky bisa jg menggunakan sintak seperti dibawah ini : query3.SQL.Clear; query3.SQL.Add('select potongan from gaji where no_slip=1'); query3.Open; query2.sql.Clear; query2.SQL.Add('Update pinjam set jml_pinjaman=jml_pinjam - '+query3.FieldByName('potongan').Value+' where no_slip=1'); query2.ExecSQL;
more ...
  • Pages:
  • 1
Share to
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com