IBTransaction commit edilmiş mi?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
habilkader
Üye
Mesajlar: 61
Kayıt: 14 Eki 2006 11:11

IBTransaction commit edilmiş mi?

Mesaj gönderen habilkader »

s.a
Table nesnelerinin durumunu table.State ile tespit edebiliyoruz. Aynı şekilde IBTransaction nesnesinin Commit edilip edilmediğini tespit etmenin bi yöntemi varmı.

Şöyleki;
formumda toplu stok işlemlerinin yapıldığı bi grid nesnesi ile İptal ve Kaydet butonları var.
Kullnıcı Grid üzerinde bir çok kayıta ait düzenlemeyi yaptıktan sonra en son Kaydet butonu ile IBTransaction1.commit yaparak kaydediyor.
Ancak kullnıcı Kaydet butonuna tıklamadan formu kapatabilir ihtimaline karşılık Formun onclose olayına eğer IBTransaction1 commit edilmediyse kullnıcıyı uyarıcı bi mesaj yazdırmak istiyorum bu durumda IBTransaction nesnesinin commit edilip edilmediğini nasıl anlayabilirim.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.

Kod: Tümünü seç

ibtransaction1.intransaction
bu sana transaction un aktif olup olmadığı konusunda bilgi verecektir.
ancak tek başına bu yeterli değil.
eğer commitreatining kullanıyorsan commit ettikten sonra transaction hala aktif olacaktır.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
habilkader
Üye
Mesajlar: 61
Kayıt: 14 Eki 2006 11:11

Mesaj gönderen habilkader »

a.s
evet

Kod: Tümünü seç

IBTransaction1.commitreatining 
kullnıyorum
bu durumda nasıl kontrol etmeliyim
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
bu durumda şöyle bir şey yapabilirsin.
formda global bir değişken tanımlarsın.
kaydet düğmesine tıklandığı zaman bu değişkeni set edersin.
formun onclose olayında da bu değişkeni kontrol edersin.
yada kullandığın dataset(ibtable,ibdataset)in (tabi kullanıyorsan) state ini de kontrol edebilrisin.

Kod: Tümünü seç

if ibdataset1.state in [dsedit,dsinsert] then
begin
  yaptığnız değişiklikleri kaydetmek istiyormusunuz....
end;
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Cevapla