Db ye insert başarılı olmuyor ama ID tetikleniyor.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Db ye insert başarılı olmuyor ama ID tetikleniyor.

Mesaj gönderen neu84 »

Selamlar arkadaşlar, günaydın..

SqlServerda bi veritabanım var, AutoIncrement ile 1 er arttırıyor PrimaryKey olan ID kolunun her insert yaptıgımda.. Ancak insert komutunu yalladığımda eğer sorgu içerisinde bi sorun varsa ve başarılı olamazsa, yine de ID sütünunun increment ını tetikliyo bir arttırıyo, girip bakıyorum tablo ya kayıt yok, daha sonra bi sorgu daha yolluyorum bu sefer ekleniyor, açıp bakıyorum IDnin son hali 45 iken, 46 olması gerekirken o hatalı sorgu nedeniyle tetiklendigi için ID 47 oluyo.. Ne önerirsiniz?
GURGAH
Üye
Mesajlar: 22
Kayıt: 10 Ağu 2010 06:10

Re: Db ye insert başarılı olmuyor ama ID tetikleniyor.

Mesaj gönderen GURGAH »

sql serverda varmı bilmiyorum ama oracle da inser sorgunun iiçinde <sequnece_adi.nextval> kullanirsan bahsettiğin sorunla karşılaşmıyorsun.

Örn :

Kod: Tümünü seç

İnsert into deneme (id,ad,soyad) values (seq_denemeid.nextval,'Gurgah',gurgah);
gibi bir kullanımda sadece insert başarılı olması halinde sequence den sıradaki numarayı alır.
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: Db ye insert başarılı olmuyor ama ID tetikleniyor.

Mesaj gönderen neu84 »

GURGAH yazdı:sql serverda varmı bilmiyorum ama oracle da inser sorgunun iiçinde <sequnece_adi.nextval> kullanirsan bahsettiğin sorunla karşılaşmıyorsun.

Örn :

Kod: Tümünü seç

İnsert into deneme (id,ad,soyad) values (seq_denemeid.nextval,'Gurgah',gurgah);
gibi bir kullanımda sadece insert başarılı olması halinde sequence den sıradaki numarayı alır.
Tşk ederim kardeş. Denedim olmadı, demekki yokmuş sql serverda.. Yinede saol :)
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Db ye insert başarılı olmuyor ama ID tetikleniyor.

Mesaj gönderen sabanakman »

Zaten bırakın artsın numara. Başarılı veya başarısız kayıt olma durumuna kafayı takıp ardışık tüm sayıları görmek size nizami gelebilir ama aynı anda çoklu kullanım esnasında işlerin yolunda gitmesi için numaraların bu şekilde artması şart. Eğer illaki sizin verdiğiniz değer alana yazdırılacaksa da

Kod: Tümünü seç

SET IDENTITY_INSERT deneme ON
insert into deneme (id,ad,soyad) values (11,'Ad','Soyad')
SET IDENTITY_INSERT deneme OFF
gibi bir sorguyla gerekli ayarı yaparak istediğiniz değeri yazabilirsiniz ve işlemden sonra da bu ayarı normale almanız gerekmektedir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: Db ye insert başarılı olmuyor ama ID tetikleniyor.

Mesaj gönderen neu84 »

sabanakman yazdı:Zaten bırakın artsın numara. Başarılı veya başarısız kayıt olma durumuna kafayı takıp ardışık tüm sayıları görmek size nizami gelebilir ama aynı anda çoklu kullanım esnasında işlerin yolunda gitmesi için numaraların bu şekilde artması şart. Eğer illaki sizin verdiğiniz değer alana yazdırılacaksa da

Kod: Tümünü seç

SET IDENTITY_INSERT deneme ON
insert into deneme (id,ad,soyad) values (11,'Ad','Soyad')
SET IDENTITY_INSERT deneme OFF
gibi bir sorguyla gerekli ayarı yaparak istediğiniz değeri yazabilirsiniz ve işlemden sonra da bu ayarı normale almanız gerekmektedir.
Çok tşk ederim cevap için. peki sizce transaction kullansam işe yarar mı bu durumda?
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Db ye insert başarılı olmuyor ama ID tetikleniyor.

Mesaj gönderen sabanakman »

ID her şekilde artacak (artmalı da) ama yapılan kayıt işlemlerini toplamda onaylamak veya iptal etmek için transaction sağlıklı bir yöntem olacaktır. Ayrıca transaction başlama - bitiş süreci mümkün olduğunca kısa olmalıdır.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: Db ye insert başarılı olmuyor ama ID tetikleniyor.

Mesaj gönderen neu84 »

sabanakman yazdı:ID her şekilde artacak (artmalı da) ama yapılan kayıt işlemlerini toplamda onaylamak veya iptal etmek için transaction sağlıklı bir yöntem olacaktır. Ayrıca transaction başlama - bitiş süreci mümkün olduğunca kısa olmalıdır.
Tekrar Tşk ederim.
Cevapla