Appendde OnPostta tetiklenen Autoincrement değeri alabilmek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Appendde OnPostta tetiklenen Autoincrement değeri alabilmek
Arkadaşlar vt olarak firebird kullanıyorum.Birde autoincrement alanım var ama ibdataset tarafından onpost olayında tetikleniyor.Ama ben bu alanın değerini bu dataset append modunda iken kullanmak ve bir değişkene atamak istiyorum.Ama bu alan onpost ta şekillendiğinden dolayısıyla append modunda sıfır değeri atıyor değişkene.SQL ile max değerini alıp yada son kaydın değerini alıp 1 artırmak aklıma geldi.Ama eğer sondan kayıut silinirse silinen kaydın değeri tekrar verilemediğinden bu 1 artırma olayı hata verecektir.
Ne yapmamı öneririsiniz.?
Teşekkürler.
Ne yapmamı öneririsiniz.?
Teşekkürler.
- kadirkurtoglu
- Üye
- Mesajlar: 748
- Kayıt: 22 May 2005 01:20
- Konum: Uzakta Görünen Tepeden...
Re: Appendde OnPostta tetiklenen Autoincrement değeri alabil
autoincrement alana değeri generator kullanarak mı aktarıyorsunuz yoksa değeri kendiniz mi artırıyorsunuz eğer generator kullanıyor iseniz bu değeri select gen_id(generator,0) from rdb$database ile alabilirsinizmhizar yazdı:Arkadaşlar vt olarak firebird kullanıyorum.Birde autoincrement alanım var ama ibdataset tarafından onpost olayında tetikleniyor.Ama ben bu alanın değerini bu dataset append modunda iken kullanmak ve bir değişkene atamak istiyorum.Ama bu alan onpost ta şekillendiğinden dolayısıyla append modunda sıfır değeri atıyor değişkene.SQL ile max değerini alıp yada son kaydın değerini alıp 1 artırmak aklıma geldi.Ama eğer sondan kayıut silinirse silinen kaydın değeri tekrar verilemediğinden bu 1 artırma olayı hata verecektir.
Ne yapmamı öneririsiniz.?
Teşekkürler.
OnNewRecordda artırmak istemiyorum.Vazgeçme durumlarındada bir artırıyor çünkü.Onpost'u OnNewRecord yaparsan append dediğin anda id belirecektir. senin istediğinde bu id yi append dediğin anda almak ise çözüm OnNewRecord
Generatör ile artırıyorum.Genereatör de ibdatasete bağlı.autoincrement alana değeri generator kullanarak mı aktarıyorsunuz yoksa değeri kendiniz mi artırıyorsunuz eğer generator kullanıyor iseniz bu değeri select gen_id(generator,0) from rdb$database ile alabilirsiniz
ayrı bir query yemhizar yazdı:OnNewRecordda artırmak istemiyorum.Vazgeçme durumlarındada bir artırıyor çünkü.Onpost'u OnNewRecord yaparsan append dediğin anda id belirecektir. senin istediğinde bu id yi append dediğin anda almak ise çözüm OnNewRecord
Generatör ile artırıyorum.Genereatör de ibdatasete bağlı.autoincrement alana değeri generator kullanarak mı aktarıyorsunuz yoksa değeri kendiniz mi artırıyorsunuz eğer generator kullanıyor iseniz bu değeri select gen_id(generator,0) from rdb$database ile alabilirsiniz
Kod: Tümünü seç
select gen_id(generator,0)as sonnumara from rdb$database
- kadirkurtoglu
- Üye
- Mesajlar: 748
- Kayıt: 22 May 2005 01:20
- Konum: Uzakta Görünen Tepeden...
Arkadaşlar her ikinizede teşekkür ederim.Yukarıda da dediğim gibi MAX almak sorun çıkarıyordu.Son kayıt silindiyse generatörün değer ile son kaydıun id si farklı oluyor idi.Ancak bu
olayı bitirdi.Ne olursa olsun bu generatörün değerini veriyor.Teşekkürler.
Kod: Tümünü seç
select gen_id(generator,0)as sonnumara from rdb$database
evet sorun halloldu ama gözden kaçırmamanız gereken bir nokta var.
oda sizin aldığınız değer kesinlikle kayda verilecek değer değil.
birden fazla bilgisayarın olduğu durumlarda sıkıntı çıkarabilir.
kolay gelsin.
oda sizin aldığınız değer kesinlikle kayda verilecek değer değil.
birden fazla bilgisayarın olduğu durumlarda sıkıntı çıkarabilir.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kesinlikle haklısın.bu yöntemde işe yaramıyor.Denemelerde bizzat bunu gördüm.Ama sorun nasıl çözülecek tek çözüm OnNewRecord mu yani?Başka çözüm yokmu?aslangeri yazdı:evet sorun halloldu ama gözden kaçırmamanız gereken bir nokta var.
oda sizin aldığınız değer kesinlikle kayda verilecek değer değil.
birden fazla bilgisayarın olduğu durumlarda sıkıntı çıkarabilir.
kolay gelsin.
@mhizar
sanırım generator değerini tablona manuel vermen lazım.
ile generatorun değerini alıp tablonun id sine verbilirsin.
unutmaman nokta insert sql de id alanına da değer göndermen.
birde eğer beforeinsert trigerinde id ye değer atadıysan onun null yada 0 olup olmadığını kontrol etmen lazım.
kolay gelsin.
sanırım generator değerini tablona manuel vermen lazım.
Kod: Tümünü seç
select gen_id(generator,1)as sonnumara from rdb$database
unutmaman nokta insert sql de id alanına da değer göndermen.
birde eğer beforeinsert trigerinde id ye değer atadıysan onun null yada 0 olup olmadığını kontrol etmen lazım.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim