Otomatik artan ID
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Otomatik artan ID
S.A Arkadaşlar firebird veritabanı ile yapmış olduğum projemde bir şey gözüme çarptı. Şöyleki şimdi bir cari modülüne ilk defa sırayla kayıt girdiğim zaman ID alnında ilk kayıtta 1 yazıyor ikici kayıtta2 otomatik yazıyor buraya kadar sıkıntı yok. Ama şurda sıkıntı var bu iki kaydı sildiğim ve daha sonra tekrar kayıt gidiğim zaman kayıtlar 1 den başlamaıyor daha önce girdiğim 2 kayıt duruyomuş gibi 3 den başlayıp devam ediyor ben böyle olmasını istemiyoprum çünkü yazdığım ticari uygulama olduğu için müşteride sıkıntı yaratabilir.Acaba nasıl düzeltirim bu durumu .. ??
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Otomatik artan ID
Bu sıkıntı değil bizzat olması gereken mantığın ta kendisidir. Zira bu istediğinizi yaptığınız takdirde ağ ortamında aynı anda kullanılan çoklu kullanıcılı bir projede aynı anda kullanım esnasında işleriniz arap saçına döner.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Otomatik artan ID
tamam da hocam programı test ederken mesela 50 tane kayıt gridk ve satacağımız zaman bunları sildik müşteri kendisi bilgi gireceği zaman kayıt 51 den başlıyorsa neden bu 1 den başmıyor diye sorarsa be diyecez peki ? ayrıca program ağda değil tek makinada çalışıyor.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Otomatik artan ID
Otomatik artan değerler genelde ana-detay tablo ilişkilerini kurarken ana tabloda kullanılır ve bu alan programsal organize edildiğinden kullanıcıyı pek bağlamaz. Hangi tabloyu ne amaçla kullandığınızı bilmiyorum ama SQL Server olsaydı kayıtları silmenin bu değeri sıfırlamanın yolu truncate table TABLO şeklinde boşaltmak olacaktı. FireBird bilgim pek yok ama orada da bu değeri sıfırlamanın bir yolu vardır elbet.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Otomatik artan ID
evet bencede o alanı sıfırlamanın bir yolu mutlaka vardır.. ?
Re: Otomatik artan ID
firebirdde otomatik artan alan için genelde generatorler kullanılır, generatörler bir nevi sayaç olarak çalışır... tablo için generator tanımlanır ve tablonun before insert triggerında generatörden değer alınarak tablonun ilgili alanına atanır...
veritabanını dağıtma aşamasında da tablo boşaltıldıktan sonra generatörler başlangıç değerine set edilir...
başlangıç değeri sıfır veriliyor, böylece tabloya ilk kayıt girildiğinde generatörden alınan değer 1 olacak...
veritabanını dağıtma aşamasında da tablo boşaltıldıktan sonra generatörler başlangıç değerine set edilir...
Kod: Tümünü seç
ALTER SEQUENCE GENERATOR_ADI RESTART WITH 0;
bazen yükselmek için önce dibi görmek gerekir...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Re: Otomatik artan ID
afadersiniz ama bu kodu nereye yazacam ???
Re: Otomatik artan ID
Bu kadar zor olmaması lazım..
IBExpert kullanıyorsundur büyük bir ihtimalle. IBExperti aç, veritabanını seç sağ tarafta generator yazan yeri aç, içindekilerden birine çift tıkla, açılan sayfada sol üstte bir yerlerde "bütün generatörleri göster"e tıkla açılanların içinden istediğin birini seç ve değerini kafana göre belirle.
Yalnız dikkat et tabloda var olan numaradan küçük bir değer verirsen hata verir. 0 vermek için tablonu boşalt sonra generatore 0 değerini ver...
IBExpert kullanıyorsundur büyük bir ihtimalle. IBExperti aç, veritabanını seç sağ tarafta generator yazan yeri aç, içindekilerden birine çift tıkla, açılan sayfada sol üstte bir yerlerde "bütün generatörleri göster"e tıkla açılanların içinden istediğin birini seç ve değerini kafana göre belirle.
Yalnız dikkat et tabloda var olan numaradan küçük bir değer verirsen hata verir. 0 vermek için tablonu boşalt sonra generatore 0 değerini ver...
Re: Otomatik artan ID
Ever IB Expert kullanıyorum ama projenin olduğu klasörü açamıyorum çünkü daha önceden adını değiştirmiştim
peki bu alanı sıfırlamazsak ne olur ?

- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Otomatik artan ID
Hiç sorun olmaz.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Otomatik artan ID
çözdüm arkadaşlar olay şu generator alanını sıfırlamak için tasarım yaptığınız programı generator alnın daki value yazan kolonda 3 - 4 v.s gibi rakamlar yazar onların yerine 0 yazıp tekrar derlediğiniz zaman otomaik ID sıfırlamış oluyoruz ama bu işlemi yapmadan önce bütün tablolardaki kayıtları silin yoksa sorun çıkabilir.. bu arada yardımcı oan bütün arkadaşlara tşk ederim sağolun... 

Re: Otomatik artan ID
Biz ne demişiz....akineton yazdı:çözdüm arkadaşlar olay şu generator alanını sıfırlamak için tasarım yaptığınız programı generator alnın daki value yazan kolonda 3 - 4 v.s gibi rakamlar yazar onların yerine 0 yazıp tekrar derlediğiniz zaman otomaik ID sıfırlamış oluyoruz ama bu işlemi yapmadan önce bütün tablolardaki kayıtları silin yoksa sorun çıkabilir.. bu arada yardımcı oan bütün arkadaşlara tşk ederim sağolun...
