SP'de arithmetic exception, numeric overflow, or ...hatası

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

Evet ikisinde de WIN1254...
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

IBDatabase'in Character Set'ini None yapıp test edebilir misin?
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

Test ettim değişen bişey yok maalesef..Denemediğim şey kalmadı, projenin kendi SQL editöründe select çekiyorum sorunsuz çalışıyor ama sp de ya da viewde yapınca olmuyor..Sorunun kaynağını da tespit edemedik, her şey normal görünüyor, taşma vs.var mı diye bakıyorum tek bir kayıt var tabloda dönen değerler 1 adet ve 100 lira...Nasıl bir durumdur anlayamadım gitti...Expertte açıp bir kez Commit ettiğimde her şey normale dönüyor işin garibi :roll:
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

bLue aLonE yazdı:Test ettim değişen bişey yok maalesef..Denemediğim şey kalmadı, projenin kendi SQL editöründe select çekiyorum sorunsuz çalışıyor ama sp de ya da viewde yapınca olmuyor..Sorunun kaynağını da tespit edemedik, her şey normal görünüyor, taşma vs.var mı diye bakıyorum tek bir kayıt var tabloda dönen değerler 1 adet ve 100 lira...Nasıl bir durumdur anlayamadım gitti...Expertte açıp bir kez Commit ettiğimde her şey normale dönüyor işin garibi :roll:
procedureunun sourceunu
recreate procedure ... olarak değiştir.
ve bütün satırların başına -- koy sadece begin suspend end kalsınlar.
ve bu şekilde yaratıp çalıştır.
bi hata almaman lazım çünkü boş.
daha sonra ilk satırdan başlayarak komutlardaki -- yi kaldır tektek
ve o şekilde yeniden yaratıp çalıştır. taaki hatayı alana kadar.
ve hangi satırda hata veriyo burda bize göster.
Firebird Foundation Member #208
http://www.firebirdsql.org
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

Evet denedim çalışıyor lakin sorun şurda, ben bu procedureye scriptle vt oluştukduktan sonra hangi şekilde olursa olsun commit bastığımda hata ortadan kalkıyor.Yani -- işaretlerinin birini kaldırıp tekrar çalıştırdığımda hata komple ortadan kalkmış oluyor.Tarif ettiğin gibi tek tek kaldırarak da yaptım, belki yanlış gözlemliyorumdur diye..Hatta yeni bir sp yazdım işlemleri tek tek ekledim çalıştırıyorum sorunsuz çalışıyor, scriptle yeni veritabanı oluşturup kayıt girilince sp exec edildiğinde hata veriyor..FB'yi kaldırıp yeniden kurdum, keza IBExperti de bana mısın demedi.Sıra Delphiyle OS'a geldi sanırım :shock:
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Bu olayı geçmişte yaşamıştım. Nedeni de alanlardan birinin boyutunu sonradan IBExpert ile değiştirmemdi.

Lütfen IBExpert ile tablonun metadata'sını çıkart. Sonra bu metadata ile 0 dan yeni bir tablo oluşturarak dene.

FB 1.5.3 ile deneme şansın var ise onunla da dene. Belki 2.0 da şimdiye dek karşılaşılmayan bir bug yakalamışsındır.
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Problem olan tablo veya stored procedure'ün kullandığı tüm tablolardaki tüm kayıtların alfasayısal alanlarındaki İngilizce olmayan karakterlerini (ş,ç,ö,ğ,ü...) İngilizce karakterlere çevirip de test edebilir misin?

Diğer bir test de: VT'nin ve IBDatabase'in Language'larını None yaparak test edebilir misin?
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

bLue aLonE yazdı:Evet denedim çalışıyor lakin sorun şurda, ben bu procedureye scriptle vt oluştukduktan sonra hangi şekilde olursa olsun commit bastığımda hata ortadan kalkıyor.Yani -- işaretlerinin birini kaldırıp tekrar çalıştırdığımda hata komple ortadan kalkmış oluyor.Tarif ettiğin gibi tek tek kaldırarak da yaptım, belki yanlış gözlemliyorumdur diye..Hatta yeni bir sp yazdım işlemleri tek tek ekledim çalıştırıyorum sorunsuz çalışıyor, scriptle yeni veritabanı oluşturup kayıt girilince sp exec edildiğinde hata veriyor..FB'yi kaldırıp yeniden kurdum, keza IBExperti de bana mısın demedi.Sıra Delphiyle OS'a geldi sanırım :shock:
Hata sende.
En baştan bu şekilde açıklamadın olayı VT dosyası create ederken SP yi kullandığını ben okuduğumu hatırlamıyorum.
**** DDL lerle DML leri çorba edip kullanmayın! ****
DDL işlemi yaptıysanız commit edin.
budur.
Firebird Foundation Member #208
http://www.firebirdsql.org
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

İlginiz için teşekkürle başlayayım..

@coderlord;

Belirttiğin gibi bir alanı integerden numerice çevirmiştim :idea: , olayın ondan kaynaklanabileceğini tahmin ederek bu gece o tablo ve onunla bağlantılı her şeyi sildim, yeniden oluşturdum, scripti falan da tamamen değiştirdim, zınhar yemiyor...

@hakan can;

Evet karakterleri ve setleri de değiştirerek denedim şimdi, değişen birşey olmadı, aynı hatayı veriyor...

@terminator;

"En baştan bu şekilde açıklamadın olayı VT dosyası create ederken SP yi kullandığını ben okuduğumu hatırlamıyorum. " bu cümleyi tam anlayamadım, vt yi scriptle create ediyoruz ve bağlantıyı sağlıyoruz..akabinden veri girişi yapılıyor ve commit gerçekleşiyor, devamında da sp exec ediliyor, hata da akabinden geliyor...Benim SP'yi commit etmekten kastım yeni oluşturulan vtye expertle register olduktan sonra bir değişiklik dahi yapmadan commit ettiğimde sorun düzeliyor...

Çok vaktinizi aldım hoşgörün...
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

peki o hata veren scriptinle bi de şunu dener misin..

....
commit work;
connect 'mydatabase.FDB' vs vs..
select * from myprocedure('RDBMS');


böyle de hata verecek mi bi bakalım..
Firebird Foundation Member #208
http://www.firebirdsql.org
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

Ekledim script sorunsuz çalıştı, database oluşturuldu, kayıtları girdim, sp'yi çağırdım yine aynı hata...
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

FB ve ibexpert versiyonun tam olarak nedir? client lib aynı mı?

SP yi çağıran bölümü başka bir script dosyasına taşı ve
1. scripti çalıştırdıktan sonra ibexperti kapat, tekrar aç ve 2. scripti çalıştır bakalım ne olacak..
bir de command line tool ISQL ile çalıştırmayı dener misin scriptini..

tüm bunlarbi işe yaramazsa, ya scriptinin kırpılmış ama aynı sorunu yaratan bir sürümünü bana gönder çözmeye çalışayım.
FB2 ile de deneme yapabilirsin.
http://www.firebirdsql.org/download/sna ... uilds/win/
Firebird Foundation Member #208
http://www.firebirdsql.org
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

Ortada bi yanlış anlaşılma var sanırım, ben anlatamadım mı acaba :?:

İşlemleri maddeleyeyim, ifade yeteneğim zayıf olabilir, hoşgör..

- IBExpertle scripti alıyorum, ilk baştaki karakter set, database tanımı gibi bilgileri ben kesiyorum onları scriptin içine delphi ortamında insert ediyorum, zira vt pathi sabit değil...

- Program dahilinde script çalışıyor, veritabanı oluşturuluyor.

- Yine program dahilinde bağlantı sağlanıyor, veriler giriliyor..

- Raporlar ve muadili işlemlerde bu sp exec ediliyor, .

- Hata tam bu noktada geliyor..

- Programın sql monitöründe spyi select ediyorum çalışmıyor..

- Experte dönüyorum çalıştırıyorum aynı hata.

- Expertte yukardan commit tuşuna basıp tekrar çalıştırıyorum, hata düzeliyor..

- Programı çalıştırıyorum spyi tekrar exec ediyorum, hata yok işlem gerçekleşiyor.

FB sürümü 2.0.0.11252-1-Win32

IBExpert 2004.04.01 ve 2006.01.29 la denedim..
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Sanırım SP henüz derlenmediği için hata alıyorsun. IBExpert ile commit verdiğinde derleniyor ve çalışıyor.

Programda VT'yi script ile oluştururken script'in sonuna commit work; koyuyorsun değil mi?
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Bir ihtimal daha.

Veriler insert edildikten sonra, commit etmeden, SP'yi ayrı bir transaction'da çalıştırıyor olabilir misin? Bu yüzden SP henüz VT2yi boş görüyor olabilir de senin SP kodu işlem sonucu geriye NULL döndüğü için bu hatayı veriyor olabilir mi? Sallıyorum tabii, SP'yi analiz etmedim. :D
Cevapla