FireBird deinsert ten sonra sellect yapıldığında

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
stnonstop
Üye
Mesajlar: 149
Kayıt: 22 Haz 2005 04:34

FireBird deinsert ten sonra sellect yapıldığında

Mesaj gönderen stnonstop »

Firebirde insert ile bir veriyi tabloya gönderdikten sonra ne EMS Interbase MAnagerda ne de kendi programımda göremiyorum. Tekrar EMS başlattığımda yada programımı complie ettiğimde veriyi göre biliyorum.

Kullanıdığım Sürüm Firebird 1.5 kullandığım yazılım aracı borland c builder 6 bağlantı compenenti ise ınterbase nin kendi compenenti..
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba;

EMS 'de Commit Transaction benzeri butona tıklaman lazım(IB Expertteki gibi),son değişiklikleri görmen için.
Programında ise, Dataseti Close,Open yapman gerekli.
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

merhaba tablonu refresh yap. tabloyu insert ettikten sonra transaction u commit ediyormusun. eğer ediyorsan refresh......
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
stnonstop
Üye
Mesajlar: 149
Kayıt: 22 Haz 2005 04:34

Mesaj gönderen stnonstop »

Birde bir şeyi açıklamayı unutmuşum iki farklı transaction kullanıyorum 1. sinden insert ediyorum diğeri yolluylada select ediyorum. İnsert ettiğim transaction->commit(); diyerek commit etti. Select yaptığım transaction nın çağırdığım menü itemına transaction->commit(); dememe rağmen herhangi bir değişiklik olmadı.

Bu arada dataseti close ve open yapmam da bir değişiklik getirmedi açıkcası. sadece bağlantı tuşum sayesinde server şifre kullnaıcı adını tekrar girdiğimde sonuçları göre biliyorum çok garip...
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba;

Kod: Tümünü seç

 Transaction->commit();
yerine

Kod: Tümünü seç

Transaction->CommitRetaining;
kullanmalısın.

** Çünkü bildiğim kadarıyla sade commit,Transaction'i kapatıyor ve bir daha başlatman gerekiyor.

** Ayrıca TDatabase 'in LoginPrompt=False yapmalısın,sürekli şifre çıkmaması için

**

Kod: Tümünü seç

Birde bir şeyi açıklamayı unutmuşum iki farklı transaction kullanıyorum 1. sinden insert ediyorum diğeri yolluylada select ediyorum.
** Tek Transaction niye kullanmıyorsun,gördüğüm kadarıyla iki Transaction kullanmana gerek yok.

iyi günler...
stnonstop
Üye
Mesajlar: 149
Kayıt: 22 Haz 2005 04:34

Mesaj gönderen stnonstop »

Uğur1982 yazdı: ** Çünkü bildiğim kadarıyla sade commit,Transaction'i kapatıyor ve bir daha başlatman gerekiyor.
Zaten transactionsa commit dedikten sonra tekrardan active duruma getiriyordum. Fakat sonuç yine aynı.

Sorunu şu şekilde çözdüm kullanacağım DB yi (bu arada gene bir salaklık yapıp iki tane db açtım) tamamen of yapıyorum yani bağlantısını koparıyorum. tabi bu arada transactionları queryleri de deactive yapıyorum sonra tekrardan sırasıyla açıyorum. Bu şekilde tekrardan bağlanmışoluyor sanki programı tekrar kapatıp açmış gibi oluyor.

trancation lar zaten TACommitRetaining de Default Actions parametrelerinde.
Cevapla