Arkadaşlar merhaba;
Otomatik artan alanım IBDatasete bağlı.generatör On Post olayından sonra artırıyor.Kaydı post ettikten sonra rollback yapmam gerekirse Rollabck yapıyorum kaydı database yazmıyor.Ancak otomatik artan alanın değeri değişiyor.Yani onu geri almıyor.Mesela bu alanın değeri 40 olsun.5 defa rolback yapsam sonra commit etsem ardışık kaydın idsi 45 oluyor.Acaba generatörü de rollback etmenin bir yolu varmı?
Teşekkürler.
Transactionu commit edince generatör geri almıyor.
Generator Transaction dan bağımsızdır. Transaction u RollBack yapman Generator ü eski haline getirmez. DÜşünün ki aynı generator u ağdaki bir başkası sizden sonra kullandı ve bir daha artırdı. O zaman siz eski haline getirirseniz veritabanının halı nice olur
İlle de eski haline gelsin derseniz BeforeCancel da alandaki değer ile veritabanındaki değer eşit ise dikkatlı olmak şartı ile (bu anlık zamanda bir başkasının artırmadığını garanti edemezsiniz!!) bir azaltabilirsiniz
Veritabanındaki değeri almak için;
Generator ü 1 eskiltmek için;
Generator ü 1 artırmak için;
sorgularını kullanabilirsiniz.


Veritabanındaki değeri almak için;
Kod: Tümünü seç
select gen_id(GEN_STOK_ID, 0) from rdb$database
Kod: Tümünü seç
select gen_id(GEN_STOK_ID, -1) from rdb$database
Kod: Tümünü seç
select gen_id(GEN_STOK_ID, 1) from rdb$database
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Selamlar,
Generator'ler Transaction'dan bağımsız çalışırlar. Yani değerini arttırdıysanız, arttırmışsınızdır. Ancak Generatörlere bildiğim kadarıyla değer atanabiliyor. Yani Ey Generator, senin bundan sonraki yeni değerin budur diyebiliyorsun.
Ancak neden geri almayı düşünüyorsunuz bunu anlayamadım? Yani illa kullandığınız rakamlar ardışık olmak zorunda mı? Ardışık olacak ise, Generator dışında bir çözm düşünün, yani bir tablo açın orayı kendiniz yönetim. Yani oraya değer koyun, transaction ile birlikte otomatik olarak o değer de eski haline döner.
Kolay Gelsin
Generator'ler Transaction'dan bağımsız çalışırlar. Yani değerini arttırdıysanız, arttırmışsınızdır. Ancak Generatörlere bildiğim kadarıyla değer atanabiliyor. Yani Ey Generator, senin bundan sonraki yeni değerin budur diyebiliyorsun.
Ancak neden geri almayı düşünüyorsunuz bunu anlayamadım? Yani illa kullandığınız rakamlar ardışık olmak zorunda mı? Ardışık olacak ise, Generator dışında bir çözm düşünün, yani bir tablo açın orayı kendiniz yönetim. Yani oraya değer koyun, transaction ile birlikte otomatik olarak o değer de eski haline döner.
Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
@rsimsek abi ve @Kuri_YJ çok teşekkür ederim.Bu söylediklerinizden sonra bundan vazgeçiyorum.Dediğiniz gibi başkasıda bunu artırmışsa eyvah.Bunu düşünemedim.Aslında ardışık olmaması çok sorun değil.Çünkü elbette bu tablolardan kayıt silinecek ve bu ardışık yapı bozulacak.Ama burda şarta bağlı olarak rollbacki fazla olan bir yapı var ve bu numaralarıda kullanıcıya gösteriyorum.Ardışık iki kayıt arasında çok fark olmasın demiştim ama bundan başka bir alan daha tanımlayıp onu gösteririm buda arkaplanda ne yaparsa yapsın artık.
Vakit ayırdığınız için teşekkürler.

Vakit ayırdığınız için teşekkürler.