ADOQuery ile toplu update işlemi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
emrekilinc1984
Üye
Mesajlar: 58
Kayıt: 15 Eyl 2016 12:13

ADOQuery ile toplu update işlemi

Mesaj gönderen emrekilinc1984 »

merhaba arkadaşlar adoquery ile toplu update işmeni nasıl gerçekleştirebilirim kodlarım aşağıdadır yardımlarınızı bekliyorum teşekkürler.


ADOQuery1.sql.Clear;
ADOQuery1.sql.add('update bt_talep_formu');
ADOQuery1.sql.add('(talep_eden_kullanici,talep_tarihi,talep_edilen_urun,miktar,departman,oncelik,aciklama)');
ADOQuery1.sql.add('values:)edit1,:edit2,:te_urun,:miktar,:departman,:eek:ncelik,:aciklama)');
ADOQuery1.Parameters.ParamByName('edit1').Value:=Edit1.Text;
ADOQuery1.Parameters.ParamByName('edit2').Value:=Edit2.Text;
ADOQuery1.Parameters.ParamByName('te_urun').Value:=te_urun.Text;
ADOQuery1.Parameters.ParamByName('miktar').Value:=miktar.Text;
ADOQuery1.Parameters.ParamByName('departman').Value:=departman.Text;
ADOQuery1.Parameters.ParamByName('oncelik').Value:=oncelik.Text;
ADOQuery1.Parameters.ParamByName('aciklama').Value:=aciklama.Text;
ADOQuery1.ExecSQL;
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: ADOQuery ile toplu update işlemi

Mesaj gönderen ertank »

Merhaba,

Gönderdiğiniz UPDATE SQL hatalı gözüküyor. SELECT SQL ile karşımış gibi. Aşağıdaki şekilde deneyebilirsiniz.

Kod: Tümünü seç

ADOQuery1.Sql.Clear();
ADOQuery1.Sql.Add('update bt_talep_formu');
ADOQuery1.Sql.Add('set :edit1, :edit2, :te_urun, :miktar, :departman, :oncelik, :aciklama');
ADOQuery1.Parameters.ParamByName('edit1').Value:=Edit1.Text;
ADOQuery1.Parameters.ParamByName('edit2').Value:=Edit2.Text;
ADOQuery1.Parameters.ParamByName('te_urun').Value:=te_urun.Text;
ADOQuery1.Parameters.ParamByName('miktar').Value:=miktar.Text;
ADOQuery1.Parameters.ParamByName('departman').Value:=departman.Text;
ADOQuery1.Parameters.ParamByName('oncelik').Value:=oncelik.Text;
ADOQuery1.Parameters.ParamByName('aciklama').Value:=aciklama.Text;
ADOQuery1.ExecSQL();
Ancak yukarıdaki kod bt_talep_formu tablosunun tüm kayıtlarını değiştirir. Muhtemelen bunu istemezsiniz. Sınırlandırmak için aşağıdaki gibi kullanabilirsiniz. Where ifadesinden sonraki "..." silinip kendi istediğiniz sınırlandırma koşullarını eklemeniz gerekli. Tablo yapısını bilmediğim için örnek alanları ekleyemedim.

Kod: Tümünü seç

ADOQuery1.Sql.Clear();
ADOQuery1.Sql.Add('update bt_talep_formu');
ADOQuery1.Sql.Add('set :edit1, :edit2, :te_urun, :miktar, :departman, :oncelik, :aciklama');
ADOQuery1.Sql.Add('where ...');
ADOQuery1.Parameters.ParamByName('edit1').Value:=Edit1.Text;
ADOQuery1.Parameters.ParamByName('edit2').Value:=Edit2.Text;
ADOQuery1.Parameters.ParamByName('te_urun').Value:=te_urun.Text;
ADOQuery1.Parameters.ParamByName('miktar').Value:=miktar.Text;
ADOQuery1.Parameters.ParamByName('departman').Value:=departman.Text;
ADOQuery1.Parameters.ParamByName('oncelik').Value:=oncelik.Text;
ADOQuery1.Parameters.ParamByName('aciklama').Value:=aciklama.Text;
ADOQuery1.ExecSQL();
Cevapla