AdoQuery ile Insert Olayından Sonra Birşeyler Yapmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
R.K.
Üye
Mesajlar: 82
Kayıt: 02 Nis 2007 12:05
Konum: Adana

AdoQuery ile Insert Olayından Sonra Birşeyler Yapmak

Mesaj gönderen R.K. »

İyi çalışmalar arkadaşlar. Size AdoQuery ile bir sorum olacak. Personel isminde bir tablom ve bir datamodule üzerinde 2 tane AdoQuery nesnem var.

Kod: Tümünü seç

select * from TBL_PERSONEL order by PER_ISIM
ile qryPersonel isimli AdoQuery den bilgileri çekiyorum ve buna bir datasource ile dbgrid içinde gösteriyorum. qryTemp isimli 2. AdoQuery ile personel tablosuna

Kod: Tümünü seç

procedure TfrmPersonel.Button3Click(Sender: TObject);
var
isim,cep_tel1,cep_tel2,sabit,eposta,adres:string;
begin
  isim:=Trim(edtIsim.Text);
  cep_tel1:=trim(edtCep1.Text);
  cep_tel2:=Trim(edtCep2.Text);
  sabit:=Trim(edtSabit.Text);
  eposta:=Trim(edtIsim.Text);
  adres:=Trim(memAdres.Text);
  dm.qryTemp.Close;
  dm.qryTemp.SQL.Clear;
  dm.qryTemp.SQL.Add('insert into TBL_PERSONEL (PER_ISIM,CEP_TEL1,CEP_TEL2,SABIT_TEL');
  dm.qryTemp.SQL.Add(',EPOSTA,ADRES) values (:isim,:cep_tel1,:cep_tel2,:sabit,:eposta,:adres)');
  dm.qryTemp.Parameters[0].Value:=isim;
  dm.qryTemp.Parameters[1].Value:=cep_tel1;
  dm.qryTemp.Parameters[2].Value:=cep_tel2;
  dm.qryTemp.Parameters[3].Value:=sabit;
  dm.qryTemp.Parameters[4].Value:=eposta;
  dm.qryTemp.Parameters[5].Value:=adres;
  dm.qryTemp.ExecSQL;
kodlarıyla formdaki nesnelerden aldığım verileri giriyorum. Ben qryTemp ile bir kaydı insert ettiğim zaman qryPersonel'in refresh olmasını ya da open-close diyerek kayıtların yeniden getirilmesini istiyorum. Fakat qryTemp e insert ile kayıt ekledikten sonra hangi eventın çalıştığını bulamadım. afterpost,afterinsert,onnewrecord bunların hepsine qryPersoneli open-close yapan kodu yazdım ama çalışmadı. Umarım anlatabilmişimdir yardımcı olursanız sevinirim...
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: AdoQuery ile Insert Olayından Sonra Birşeyler Yapmak

Mesaj gönderen adelphiforumz »

ihtiyacın olan afterinsert eventi bu kısma yazdığında çalışması gerekiyor
bir kodlarını tekrar gözden geçir istersen
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: AdoQuery ile Insert Olayından Sonra Birşeyler Yapmak

Mesaj gönderen aslangeri »

hangi olayın ne zaman tetiklendiğini bilmen lazım.
senin ihtiyacın olan event query yi execute yaptığında tetiklene event. (varmı öyle bir event :?: )
qrytemp i execute ettikten sonra qrypersonel i requery yaparsan sorunun çözülür.

afterinsert eventi insert ettikten sonra çalışır.
yani tabloya insert komutunu verdiğiniz zaman
//onnewrecord
//beforeinssert
Insert
//afterinsert
olayları tetiklenir.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
R.K.
Üye
Mesajlar: 82
Kayıt: 02 Nis 2007 12:05
Konum: Adana

Re: AdoQuery ile Insert Olayından Sonra Birşeyler Yapmak

Mesaj gönderen R.K. »

Arkadaşlar denedim ama maalesef yine olmadı. Yukarıdaki kodları yazdığım qryTemp query bileşenin after insert olayına

Kod: Tümünü seç

qryPersonel.close
qrt.Personel.open
yazıyorum ama hiç bişey olmuyor. Codegear 2009 kullanıyorum vt olarakda access çıkamadım bu işin içinden :(
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: AdoQuery ile Insert Olayından Sonra Birşeyler Yapmak

Mesaj gönderen aslangeri »

aslangeri yazdı:senin ihtiyacın olan event query yi execute yaptığında tetiklene event. (varmı öyle bir event :?: )(el cevap: benim bildiğim yok. onun için )
qrytemp i execute ettikten sonra qrypersonel i requery yaparsan sorunun çözülür.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Re: AdoQuery ile Insert Olayından Sonra Birşeyler Yapmak

Mesaj gönderen bobasturk »

afterpost ta yazması gerekmiyor mu bu refresh olayını.? tablo kayıt işlemini gerçekleştirdikten sonra kendini yenilesin. ama sanki commitretaining komutu yeni girilen verilerin hemen kaydını gerçekleştirip görünmesini sağlıyordu

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: AdoQuery ile Insert Olayından Sonra Birşeyler Yapmak

Mesaj gönderen aslangeri »

afterpost un çalışması için
POST komutunu vermesi lazım.
arkadaş insert querysi yazıp EXEC ile çalıştırıyor. dolayısıyla POST olayları (before,after,vs) tetiklenmiyor. :wink:
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Re: AdoQuery ile Insert Olayından Sonra Birşeyler Yapmak

Mesaj gönderen bobasturk »

hmmm tamam. balıklama dalmışız konuya
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Cevapla