cxGrid ve SQL Server kombinasyonunda AutoInc alan yönetimi
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
cxGrid ve SQL Server kombinasyonunda AutoInc alan yönetimi
Selamlar.
cxGridi daha önce herhangi bir projede kullanmamıştım (Info Power kullanıyordum..), bir değişime gidip cxGrid kullanmaya başladım. SQL Server 2005 kullanılan bir projede ID alanı AutoInc ve PK tanımlı. Gridde son kolondan sonra yeni bir row eklendiğinde, yön ok tuşları kullanılarak yeni bir row eklendiğinde ve post işleminde "Çok adımlı işlem hatalar üretti. Her bir durum değerini denetleyin" şeklinde hata mesajı alıyorum tahmininiz üzre ADO hatası. Bildiğim kadarıyla bu hata PK alan gereksiniminden kaynaklanan bir durum ancak belirttiğim gibi PK mevcut. ADOQuery ile kayıt yapmaya çalışıyorum (DataSet ya da Command nesnesini özellikle kullanmak istemedim ama onlarla da denediğimde yine aynı hatayı aldım). Aynı işlemi standart DBGrid'le denediğimde herhangi bir hata almadan kaydı tamamladı. cxGridin bununla ilgili bir ayarı olduğunu tahmin ediyorum ancak net bir sonuca da ulaşamadım. Fikri olan?
cxGridi daha önce herhangi bir projede kullanmamıştım (Info Power kullanıyordum..), bir değişime gidip cxGrid kullanmaya başladım. SQL Server 2005 kullanılan bir projede ID alanı AutoInc ve PK tanımlı. Gridde son kolondan sonra yeni bir row eklendiğinde, yön ok tuşları kullanılarak yeni bir row eklendiğinde ve post işleminde "Çok adımlı işlem hatalar üretti. Her bir durum değerini denetleyin" şeklinde hata mesajı alıyorum tahmininiz üzre ADO hatası. Bildiğim kadarıyla bu hata PK alan gereksiniminden kaynaklanan bir durum ancak belirttiğim gibi PK mevcut. ADOQuery ile kayıt yapmaya çalışıyorum (DataSet ya da Command nesnesini özellikle kullanmak istemedim ama onlarla da denediğimde yine aynı hatayı aldım). Aynı işlemi standart DBGrid'le denediğimde herhangi bir hata almadan kaydı tamamladı. cxGridin bununla ilgili bir ayarı olduğunu tahmin ediyorum ancak net bir sonuca da ulaşamadım. Fikri olan?
bu mesajı sadece PK vermiyor. bende çok ilginç başka bir şeyden almıştım. alana boyutundan fazla bir rakam ekleyince bu hatayı veriyordu.
ehlib içinde son satırda iken append insert vs olayları devre dışı bırakabiliyor. aradığın böyle bir şeymi.
ehlib içinde son satırda iken append insert vs olayları devre dışı bırakabiliyor. aradığın böyle bir şeymi.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
Bunu belirttiğin mesajı okudum ve denemelerimde bunu da gözönünde bulundurdum hatta öyle ki sadece unique alanlara değer girerek denedim sonuç değişmedi.ikutluay yazdı:bu mesajı sadece PK vermiyor. bende çok ilginç başka bir şeyden almıştım. alana boyutundan fazla bir rakam ekleyince bu hatayı veriyordu.
Aynı satırda iken post komutu verince de aynı hatayı veriyor yani sorun Insert ya da Append değil anladığım kadarıyla.ikutluay yazdı: ehlib içinde son satırda iken append insert vs olayları devre dışı bırakabiliyor. aradığın böyle bir şeymi.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Çok adımlı işlem hatalar üretti mesajı yanlış hatırlamıyorsam tüm alannları aynı değere sahip birden fazla kayıt varsa ve bunlardan birisi üzerinde işlem yapılıyorsa ADO tarafından üretiliyordu. Acaba post işleminden sonra identity alan değeri okunamayıp null kalıyor olabilir mi? Eğer öyle ise AfterPost olayına ADO bileşenini Requery ile tazelemek sorunu çözebilir.
Bir benzer sorunda trigger'ı olan tabloda yapılan işlemlerde oluyordu. Tabi trigger kodları set nocount on .... set nocount off arasına yazılmamışsa. Bu durumda gelen mesajı hatırlamıyorum ama
Bir benzer sorunda trigger'ı olan tabloda yapılan işlemlerde oluyordu. Tabi trigger kodları set nocount on .... set nocount off arasına yazılmamışsa. Bu durumda gelen mesajı hatırlamıyorum ama
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
Benzer bir soruya karşılaştığın bu olayı yazmışsın okumuştum trigger (henüz) yok zaten tabloda, sorunun kaynağını tespit ettim bir alanın tipi Numeric(2, 2) şeklindeydi ve bu alana aktardığım değer 18, bu atama işleminde hata veriyordu. Halbuki aynı tipte başka bir alana da atanan değer 12 ve civarında rakamlar olmasına rağmen herhangi bir hata vermiyor. Gariptir alanın tipini Float yapınca sorun düzeldi ama içime sinmedi
İlginize teşekkürler..
İlginize teşekkürler..
hıımm şimdi okuyunca fark ettim aynı sıkıntılar ve bir benzeri bendede var MSsql kullanmaya başladığımdan buyana;
iki tablom var bunlardan biri stok diğeri stok_depo
stok tablomda insert trigger'ım(after) var şu şekilde;
delphi tarafından bir stok tablosuna yeni bir kayıt açtığımda stok_id alanı AutoInc ve PK tanımlı olmasına rağmen stok tablosunun AutoInc üretiği numarayı değilde toplu kayıtı açtığım tablodaki yani stok_depo daki en son ki kayıtın id sini grid e döndürüyor. ama delphiden queryleri açıp kapattığımda gördüğüm sonuç herşey normal olarak işlemiş gözüküyor...
iki tablom var bunlardan biri stok diğeri stok_depo
stok tablomda insert trigger'ım(after) var şu şekilde;
Kod: Tümünü seç
declare @xstok_id integer
declare @xdepo_id integer
begin
select @xstok_id=stok_id from INSERTED
insert into stok_depo (stok_id,depo_id,giri,ciki)
SELECT @xstok_id,depo.depo_id,0,0 from depo
end
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Kodlarını...şekline getirmeni öneririm. Aksi halde SQL'in ürettiği uyarı (warning) delphi tarafından hata (exception) olarak algılanıyor.
Kod: Tümünü seç
declare @xstok_id integer
declare @xdepo_id integer
begin
set nocount on
select @xstok_id=stok_id from INSERTED
insert into stok_depo (stok_id,depo_id,giri,ciki)
SELECT @xstok_id,depo.depo_id,0,0 from depo
set nocount off
end
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: cxGrid ve SQL Server kombinasyonunda AutoInc alan yönetimi
Merhaba arkadaşlar, malum hatayı bende alıyorum.
alan nvarchar(255) tanımlı, numerik giriş yapıyorum diye veriyor.
Tablo kullanıyorum.
Afterposta kodmu yazacağım yoksa bunun başka bir yolu varmı?
alan nvarchar(255) tanımlı, numerik giriş yapıyorum diye veriyor.
Tablo kullanıyorum.
Afterposta kodmu yazacağım yoksa bunun başka bir yolu varmı?
Bir kelimenin anlamını öğretsen bile yeter..
Re: cxGrid ve SQL Server kombinasyonunda AutoInc alan yönetimi
bu hatayı yakın zamanda ben de aldım, aslında konunun üzerinden çok geçmiş ama arama yapan arkadaşlara faydamız dokunur belki diye yazayım dedim.
tamamen veritabanındaki alan büyüklüğü ile ilgili bir durum. numeric(4,2) lik bir alana, 100 değeri verirseniz bu hatayı alırsınız. ya 10 gireceksiniz ya da alanı numeric(5,2) diye ayarlayacaksınız. ben bu şekilde aştım bu sorunu.
öyle de bir hata ki, ne demek istediğinden hiçbir şey anlaşılmıyor yani.
tamamen veritabanındaki alan büyüklüğü ile ilgili bir durum. numeric(4,2) lik bir alana, 100 değeri verirseniz bu hatayı alırsınız. ya 10 gireceksiniz ya da alanı numeric(5,2) diye ayarlayacaksınız. ben bu şekilde aştım bu sorunu.
öyle de bir hata ki, ne demek istediğinden hiçbir şey anlaşılmıyor yani.