Otomatik artan ID

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
akineton
Üye
Mesajlar: 181
Kayıt: 22 Kas 2010 11:33

Otomatik artan ID

Mesaj gönderen akineton »

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 .. ??
Kullanıcı avatarı
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

Mesaj gönderen sabanakman »

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. - .
akineton
Üye
Mesajlar: 181
Kayıt: 22 Kas 2010 11:33

Re: Otomatik artan ID

Mesaj gönderen akineton »

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.
Kullanıcı avatarı
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

Mesaj gönderen sabanakman »

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. - .
akineton
Üye
Mesajlar: 181
Kayıt: 22 Kas 2010 11:33

Re: Otomatik artan ID

Mesaj gönderen akineton »

evet bencede o alanı sıfırlamanın bir yolu mutlaka vardır.. ?
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: Otomatik artan ID

Mesaj gönderen unicorn64 »

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...

Kod: Tümünü seç

ALTER SEQUENCE GENERATOR_ADI RESTART WITH 0;
başlangıç değeri sıfır veriliyor, böylece tabloya ilk kayıt girildiğinde generatörden alınan değer 1 olacak...
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...

Resim
akineton
Üye
Mesajlar: 181
Kayıt: 22 Kas 2010 11:33

Re: Otomatik artan ID

Mesaj gönderen akineton »

afadersiniz ama bu kodu nereye yazacam ???
Kullanıcı avatarı
KoPilot
Üye
Mesajlar: 185
Kayıt: 05 Eki 2007 08:02

Re: Otomatik artan ID

Mesaj gönderen KoPilot »

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...
Dosyalarınızı kendi bulutunuza yedekleyin. Yandex Disk
Eyvallah..
akineton
Üye
Mesajlar: 181
Kayıt: 22 Kas 2010 11:33

Re: Otomatik artan ID

Mesaj gönderen akineton »

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 ?
Kullanıcı avatarı
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

Mesaj gönderen sabanakman »

Hiç sorun olmaz.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
akineton
Üye
Mesajlar: 181
Kayıt: 22 Kas 2010 11:33

Re: Otomatik artan ID

Mesaj gönderen akineton »

çö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... :D
Kullanıcı avatarı
KoPilot
Üye
Mesajlar: 185
Kayıt: 05 Eki 2007 08:02

Re: Otomatik artan ID

Mesaj gönderen KoPilot »

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... :D
Biz ne demişiz.... :mrgreen:
Dosyalarınızı kendi bulutunuza yedekleyin. Yandex Disk
Eyvallah..
Cevapla