(OleStr) into type (Double) Component Bug mu?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Necatiozbek
Üye
Mesajlar: 24
Kayıt: 23 Eki 2006 06:33

(OleStr) into type (Double) Component Bug mu?

Mesaj gönderen Necatiozbek »

Arkadaşlar herkese kolay gelsin;
Varyant değişkenler kullanmama vs gibi forumda bir çok topic i okudum ama hem anlayamadığım hemde anlamlandıramadığım bir durum yaşıyorum.
firebird de bir procedure yazdım ve bu precedure nin sonunda dönen değerlerde 2 adet alanım var 1 cisi Id_Tahsilat_Durum(Dönen Değerler 0,1,2) ve
Tahsilat_Durumu(string 20) ki bu alana Id_Tahsilat_Durum alanındaki değerlere bağlı olarak "Tahsilde" & "Bekliyor" gibi ifadeler yazdırıyorum..

Precedure yi IbExpert tarafından çalıştırdığımda herhangi bir sıkıntı yok. gayet sağlık bir şekilde sonuçları listeliyor..
Fakat delphi tarafında TIBQuery i açmaya çalıştığımda "Could not convert variant of type(OleStr) into type (Double)" hatası alıyorum.. Buna karşılık TIBQuery e atanan fieldlardan Tahsilat_Durumu fieldını kaldırdığımda ise herhangi bir sıkıntı veyahut hata olmuyor.query rahatlıkla hatasız çalışıyor.
Precedure dan gelen Tahsilat_Durumu fieldı string bir alan ve Double type ile hiç bir alakası yok.
Preceduren dönen değerlerde Ibexpert den baktığım kadarıyla herhangi bir problemde gözükmüyor, yani sıfır veya sayısal bir değer gelmesi gereken bir alana boşluk veyahut string bir ifade de gelmiyor. işin içinden çıkamadım. Procedureyi çalıştıran TIBQuery nin open SQL i de kısa ve net.. 2 adet tarih Parametresi ile açıyorum ki, Parametrelerim de AsDate tanımlı ve atadığım değerler de Asdate olarak..Belirsiz değer tipleri veya değerlerde atamıyorum..
Bir fikri olan varmı ? sorunun kaynağını nasıl tesbit edebilirim. Hatayı veya hata satırını BreakPoint koyarak da yakalayamıyorum çünkü hatayı Query inin Open&Active=True satırıyla birlikte veriyor. IbExpert tarafında da Procedure çalışıyor.. ????
Yabancı sitelerde sistemde decimalseperator ayar değişikliği önerilmiş ama denedim olmadı,kurtulamadım..
Fikirlerinizi paylaşırsanız sevinirim..
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Re: (OleStr) into type (Double) Component Bug mu?

Mesaj gönderen bobasturk »

merhaba,

aynı soruna benzer sorunu bende yaşadım ve hatıy kod veya alan tanımlarında değil, cxgrid de uyguladığım summary de buldum. yani string alanı sum komutuyla matematiksel toplam almaya çalışıyormuşum.

belki sizin hatada buna benzer bir yerdedir. bazen ummadığınız yerde mantık dışı bir hata yapılmış olabiliyor.

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: (OleStr) into type (Double) Component Bug mu?

Mesaj gönderen Lost Soul »

merhaba firebirdde alan tipi cast deyimi ile belirtilmemis ise null deger dondugunde delphi tarafinda veriyi nasol yorumlayacagini bilmedigi icin ve siz de datasetten degeri dataset.fields[].value seklinde cektiginiz icin veyahut bi degeei dogrudan bi yerle iliskilendirdiginiz icin orasi sayisal deger olarak algilamis olabilir ya da bu sorguyu calistirmaksizin datasetin fieldlarini tasarim aninda olustururken double veya datetime olarak olusturmus olabilir.

eger sebep bu ise cozum asagidakilerden biri olabilir.

firebird tarafinda degeru dondururken cast(deger as varchar[]) deyimini kullanmak

delphi tarafinda asstring seklinde cagirmak

delphi tarafinda vartostr kullanmak.

kolay gelsin.
Cevapla