database workbench FB ID otomatik ilerleme sorunu

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
forumsad
Üye
Mesajlar: 296
Kayıt: 29 Tem 2010 10:47

database workbench FB ID otomatik ilerleme sorunu

Mesaj gönderen forumsad »

Resim

arkadaşlar yukardaki şekilde tabloyu oluşturdum...
delphiden insert yaptığımda ID ****null*** hatası veriyor...

data sekmesine tıklayıp manuel veri eklemek istediğimde olmuyor

saygılarımla
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Re: database workbench FB ID otomatik ilerleme sorunu

Mesaj gönderen Kuri_YJ »

Selamlar,

ID isimli saha Primary Key ve NOT NULL olarak set edilmiş. Ancak veri girişi yapmadığından olsa gerek. ID Alanına ne değer veriyorsun?

Kolay Gelsin
Adnan
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
forumsad
Üye
Mesajlar: 296
Kayıt: 29 Tem 2010 10:47

Re: database workbench FB ID otomatik ilerleme sorunu

Mesaj gönderen forumsad »

ID alanı otomatik numara atacak
kayıt girdikçe 1 den başlayarak yukarı doğru kayıt sayısını tutacak diyebiliriz tüm tablolarda olduğu gibi..
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: database workbench FB ID otomatik ilerleme sorunu

Mesaj gönderen unicorn64 »

firebird de alan değeri kendiliğinden otomatik olarak artmaz,genellikle generator kullanılarak before insert trigger ında değer set edilir.
generator dediğimiz şeyi numaratör olarak düşünebiliriz, oracle daki karşılığı sequence dir, bir sayı değeri tutar, next ile bir sonraki değeri alınır ve before insert triggerında generatörden alınan değer yeni kaydın ID alanına set edilir
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
forumsad
Üye
Mesajlar: 296
Kayıt: 29 Tem 2010 10:47

Re: database workbench FB ID otomatik ilerleme sorunu

Mesaj gönderen forumsad »

teşekkürler arkadaşlar
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

FB & Delphi & IBX için Generator Kullanımıyla alakalı tavsiy

Mesaj gönderen Kuri_YJ »

Selamlar,

Before Insert triggerında otomatik ID alanını arttırabilirsin ancak Delphi tarafında IBX bileşen setinde, Query nesnesinde Generator alanını tanıtabilirsin ve kendisi otomatik olarak değer arttırımını yapar. Bence onu tercih edersen daha iyi olur. Çünkü, ileride Master Detail bir tablo yapısı kullandığında, Master alanın ID'sini, Detail tabloya yazman gerekecektir. Eğer Before Insert Trigger'ına yazarsan, Insert, Master Tabloyu Insert edip, commit edip, daha sonra ya refresh etmen gerek ya da kaydettiğin son kaydın ID'sini bulan ekstra bir Query yazman gerekecek. Aynı zamanda, MultiUser bir uygulama yaptığında, ID alanların birbirine girdiğini göreceksin. Sonra ona da yama yapmaya başlayacaksın.

Bunun yerine, IBQuery nesnesindeki Generator Field özelliğini kullan ve OnNewRecord seçeneğini tıkla. Böylelikle, hem DB'ye Post etmeden dahi, elinde Master Tablounun IDsi bulunmuş olur, ayrıca MultiUser durumlarda da ID'lerin birbirine girmesi veya son ID hangisiydi gibi karmaşaya girmezsin.

Tek olumsuz denilebilecek yanı, Eğer kullanıcı kaydı yapmaz vazgeçerse, ID'lerin gidişinde bazı boşluklar oluşur. Bu da çok önemli bir şey değil, hatta hiç önemli bir şey değil. (Benim için)

Başka da bir sıkıntıyla karşılaşmazsın.

Kolay Gelsin
Adnan
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Cevapla