Could not convert variant of type OleStr into type Double

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
F.Atagun
Üye
Mesajlar: 158
Kayıt: 01 Oca 2008 01:56

Could not convert variant of type OleStr into type Double

Mesaj gönderen F.Atagun »

Selamlar,
D7 ve Access kullanarak Ekstre çekiyoruz.

Bazı carilerin ekstresinde aşağıdaki hatayı alıyorum. Neden kaynaklanıyor olabilir ?
Sitede OleStr hatası alan hiç olmamış.

Borlandın sitesinde şunu buldum ama pek anladığım söylenemez
http://qc.borland.com/wc/qcmain.aspx?d=29907

---------------------------
Debugger Exception Notification
---------------------------
Project Proje.exe raised exception class EVariantTypeCastError with message 'Could not convert variant of type (OleStr) into type (Double)'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Could not convert variant of type OleStr into type Double

Mesaj gönderen aslangeri »

s.a.
hata verdiği satırı kontrol et.
o satırda tip dönüşümü yapmaya çalışıyor ancak başaramıyor. alanların değerlerini kontrol et bakalım. rakam gelmesi gereken bir yerde sanırım boşluk gelmiş olabilir.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Could not convert variant of type OleStr into type Double

Mesaj gönderen Battosai »

eğer delphi ile program yazıyorsan az çok ingilizce bilmek icap eder....bilmiyorsundur demiyorum ama zaten hata mesajı hatanın ne olduğunu söylüyor...yani diyor ki variant tipini double yapamıyom diyor...dönüşüm yapılan yada işleme sokulan değerin işleme uygun olup olmadığını kotrol etmen lazım 1.000,32 gibi ise aradaki noktayı kaldırman lazım delphide işlem yapmak için...ayrıca bu mevzular bu forumda çok sen olestr diye aratırsan bulamamış olabilirsin...
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: Could not convert variant of type OleStr into type Double

Mesaj gönderen sabanakman »

Variantlardan uzak dur. Alanlardan değeri okurken .value ile variant değer okuyor ve değeri alan değişken de variant değilse Null olan değerlerde direk bu hatayı alırsın. O yüzden string atamasında .AsString, tam sayı atamalarında AsInteger, reel sayı atmalarında asFloat gibi metotlarla değer oku.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
F.Atagun
Üye
Mesajlar: 158
Kayıt: 01 Oca 2008 01:56

Re: Could not convert variant of type OleStr into type Double

Mesaj gönderen F.Atagun »

Çok teşekkürler değerli arkadaşlar. Gerçekten çok değerli bilgiler bunlar benim için


Allah cümlenizden Razı olsun





Sevgi ve Saygılarımla
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Re: Could not convert variant of type OleStr into type Doubl

Mesaj gönderen bobasturk »

merhaba,

konuyu tekrar canlandırmak istedim zira bu hatayı bende almaya başladım. Aynı tablo, aynı alanlar değişen bişi yok. sorgu kodlarıda aynı. eski sürüm programda bu hata mesajı gelmiyor herşey düzgün çalışıyor. yeni sürümede ise bu hata mesajı dönüyor. sorguyu yapıyor mesajlara tamam diyerek geçtiğimde ama gridi ileri geri her hareket ettirdiğimde mesaj gelip duruyor.

tablodaki alanlarım ise varchar, integer, date farklı bir alan yok.

kodum şu şekilde;

Kod: Tümünü seç

var
  s1,s2,s3,s4,s5,s:String;
    begin

      s1:=cxtextEdit6.text;
      s2:=cxtextedit7.Text;
      s3:=cxdateedit1.Text;
      s4:=cxdateedit2.text;
      s5:=cxlookupcombobox1.Text;

      afisdm.AfisGenelibqry.close;

  with afisdm.AfisGenelibqry.sql do
    begin
      Clear;
      Add('Select * From AFIS');
  if s1<>'' then s:='(GELENIS LIKE ''%'+s1+'%'')';
  if s2<>'' then
    begin
  if s<>'' then s:=s+' AND ';
      s:=s+'(ISSAYI LIKE ''%'+s2+'%'')'
    end;

  if s3<>'' then
    begin
  if s<>'' then s:=s+' AND ';
      s:=s+'(ISTARIHI = '''+s3+''')'
    end;

  if s4<>'' then
    begin
  if s<>'' then s:=s+' AND ';
      s:=s+'(AFISGIRISTARIHI = '''+s4+''')'
    end;

  if s5<>'' then
    begin
  if s<>'' then s:=s+' AND ';
      s:=s+'(AFISEGIREN LIKE ''%'+s5+'%'')'
    end;

  if s<>'' then add ('WHERE '+s);
    add('ORDER BY AFISGIRISTARIHI');
    end;

      afisdm.AfisGenelibqry.Open;

      afisdm.AfisGenelibqry.Last;
      cxgroupbox15.Caption:=cxgroupbox15.caption+' TOPLAM [ '+inttostr(afisdm.AfisGenelibqry.RecordCount)+
        ' ] KAYIT BULUNDU';

   if afisdm.AfisGenelibqry.IsEmpty then
     ShowMessage('Aranılan Kriterde Kayıt Bulunamamıştır.');
yardımı dokunan olursa sevinirim. yıllardır sorunsuz çalışan kod ne oldu anlamadım.... 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ı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Re: Could not convert variant of type OleStr into type Doubl

Mesaj gönderen bobasturk »

Merhaba,

mesaj kirliliği ile rahatsızlık verdik ama sorunu da çözdük.

meger cxgrid içerisinde string alana summary de sum komutu vermişim. o yüzden haliyle hata dönüyordu.

teşekkür ve saygı ile 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
apex06
Üye
Mesajlar: 58
Kayıt: 19 Nis 2012 12:21

Re: Could not convert variant of type OleStr into type Doubl

Mesaj gönderen apex06 »

Merhaba,
Teşekkür etmek için geldim.
2 saattir sorguda sorun arıyorum :) Allah razı olsun.
bobasturk yazdı: 07 Ara 2012 09:50 Merhaba,

mesaj kirliliği ile rahatsızlık verdik ama sorunu da çözdük.

meger cxgrid içerisinde string alana summary de sum komutu vermişim. o yüzden haliyle hata dönüyordu.

teşekkür ve saygı ile kolay gelsin
Cevapla