gen_id geri kalmış.

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
iqprog

gen_id geri kalmış.

Mesaj gönderen iqprog »

stok tablosunda en son id 487,
ama gen_id 12 kalmış ve yeni kayıt yaptırmıyor sistem tabi.

tek aklıma gelen bir ara şalteri indirmişler, elektrik kesintisinden olduğunu düşünüyorum.

sizce.
cemarik
Üye
Mesajlar: 45
Kayıt: 30 Ağu 2003 11:05
Konum: İzmir

Mesaj gönderen cemarik »

veritabanına program haricinden kayıt eklenmiş -mesela ibexpertle script şeklinde- ve before insert trigger ınıda (generator ü arttıtmak gibi)kullanmadığını düşünürsek bu normal bence.
iqprog

mantıklı ama öyle bir şey yok

Mesaj gönderen iqprog »

mantıklı ama öyle bir şey yok.

kullanıcı sabahtan beri kayıt girdiğini söyler.

öyle olsaydı ilk kayıtta ortaya çıkardı.
cemarik
Üye
Mesajlar: 45
Kayıt: 30 Ağu 2003 11:05
Konum: İzmir

Mesaj gönderen cemarik »

peki bu genratoru set etme işini Trigger la mı yapıyorsunuz yoksa programda mı? Eğer programda yapıyorsanız OnNewRecord da mı yapıyorsunuz?
cemarik
Üye
Mesajlar: 45
Kayıt: 30 Ağu 2003 11:05
Konum: İzmir

Mesaj gönderen cemarik »

bunun elektrik kesintisi ile alakası olduğunu sanmıyorum . Mesela generator değeri onnewrecordda veriliyorsa ve append moduna geçiş yapıldığında bu deger sürekli artar ve cancel ile de o kayıt iptal edilmiş olmasına ragmen generator değeri arttırılmış olur.
iqprog

klasik yöntem

Mesaj gönderen iqprog »

klasik yöntemle yapıyorum.

id olayıda onpost'da
iqprog

iyi düşün

Mesaj gönderen iqprog »

iyi düşün öyle olsaydı, id geri kalmaz ileri giderdi.

ileri gitmesi de zaten bir problem oluşturmaz.

zaten onnewrecordda değil onpostta id olayı.
cemarik
Üye
Mesajlar: 45
Kayıt: 30 Ağu 2003 11:05
Konum: İzmir

Mesaj gönderen cemarik »

evet haklısın ters düşünmüşüm :(
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
olayın sebebini bizim burdan bulmamız çok zor.
büyük ihtimalle kayıtlar normal şekilde değil. Farklı bir şekilde girilmiş.(devir veya başka bir tablodan aktarım vs. dediğim gibi bizlerin bunun sebebini bulması çok zor)
kullanıcılar genelde herşeyi normal yaptıklarını söylerler. Söylemedikleri şeyler ise olayın sebebidir.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
spoke25
Üye
Mesajlar: 434
Kayıt: 16 May 2005 04:06
Konum: Bolu

Mesaj gönderen spoke25 »

kayıtlarr ne şekildee girrilirsee girilsinn trriger ile baglı ise nasıll olacakta gerii kalacakk yanii? İlginçç
Başlayan Herşey Birgün Bitmek Zorundadır.
poshet303
Üye
Mesajlar: 235
Kayıt: 26 Eki 2005 01:15

Mesaj gönderen poshet303 »

bu eski bir konu yeniden açılmış bari bende yazayım bir şeyler.

Muhtemelen geri kalan gen_id değil
geri kalan ilgili generator

Aslında konu geri kalma da değil. ilgili generator ın değeri.

Bu değer kendiliğinden değiştiyse bu hakkaten enteresan. Lakin generator sonuçta bir değişken ve değeri kolayca değiştirilebiliyor.

Kod: Tümünü seç

 set generator dene to 20
dene oldu 20.

Firebird ün log tutmuyor olması bu tür durumlarda kötü oluyor. Log lardan bu değişimin ne zaman nasıl kimin tarafında yapıldığı anlaşılabilirdi. Log larda yoksa o zaman hakkaten kendiliğinden değişmiştir bunu rapor etmeli. Fakat şimdi nasıl emin olabilirsiniz. Log larınız yok ki.


Not: 3 ncü parti araçlarla log tutulabiliyormuş. Firebird belgelerinde öle diyor (zaten piyasada var böle araçlar). FB yeterince güvenilir olduğu için log a ihtiyaç yokmuş. Öle demişler.
iqprog

Mesaj gönderen iqprog »

ben sistemi yüklediğimde stok_gen_id 12 idi. sonra vatandaş onlarca yeni stok kartı girmiş. sonra bir ara elektrikler gitmiş. sonra yine yeni stok kartlar girmiş. sonra akşam hata verir sistem. gittim baktım stok_gen_id 12 idi ondan dolayı da yeni kart tanıtamaz olmuş. neyse tabi bu vatandaşın anlattığı tekrar tekrar sormama rağmen bunu anlattı ve emin. tabi kullanıcının dediğine bazen çok bakmamak gerek çok yanlış yönlendirebiliyor. bi haltlar oldu ama işte anlamadım. tek bildiğim arada bir elektriklerin gitmiş olması. onun dışında stok_gen_id'ye kodla atama yapılmıyor. ibx kullanıyorum. on postta yeni id alıyor table.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

MAX(id) + 1 şeklinde id ye değer atanırsa belki daha sıkıntısız olacak :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

@recep abi ozamanda ağ üzerinden kayıt girişlerinde sıkıntı çıkıyor.
en iyisi arkadaş söylesin müşteri bir tane ups alsın. :lol:
şaka bir yana bu tarz durumlarda generator değerleri ile tablodaki kayıtların id lerini karşılaştırıp düzeltecek bir tool(veya servis menüsü) işimizi kolaylaştırı.
Ancak generatorun geri kalmasının bir sebebi olmalı. Bu sebeb (her ne ise) onu bulmadanda nereye kadar generatoru set edeceğiz yani.....
Neyse
hepinize iyi çalışmalar.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
laricid
Üye
Mesajlar: 3
Kayıt: 30 Kas 2005 07:27

Mesaj gönderen laricid »

bence generator id yi veritabanında before insert triggerına e koymalısın bu durumda elektrik kesilse bile gen id yükselmiş olur ve genelde fazladan ileri gitmesi zarar getirmez derim

CREATE TRIGGER TABLE_BI FOR TABLE ACTIVE
BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.SAYAC IS NULL) THEN
NEW.SAYAC = GEN_ID(table_gen_id, 1);
END

ben hep böyle yapıyorum bugüne kadar sorun çıkmadı

iyi günler
Cevapla