Variant (Null) 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.
Cevapla
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Variant (Null) Hatası

Mesaj gönderen pro_imaj »

Merhaba,

Yapmaya çalıştığım program düzgün bir şekilde çalışıyor ama şöyle bir sorun ortaya çıkıyor.


bir sürü Sql sorgusu vs var program içinde programı çalıştırıyorum herşey çok güzel giderken dbgrid üzerinde aşağı ok tuşuyla aşağıya kadar inerken şu hatayla karşılaşıyorum

Could not convert variant of type (Null) into type (String)

Variant bir alan var vt de anlamadığım şey hatayı ilk başta yiçin vermediği aynı hatayı raporlama alırkende 23. sayfada veriyor.

Toplam 16.000 kayıt var sorunun hangi kodda olduğunuda çözemedim.


Saygılarımla
Çaalşmalarınızda başarılar.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba;

Tahminim Grid üzerinde Aşağı-Yukarı hareketlerde Table alan değerini
bir yere(edit vs.) atıyorsun.Asıl konuda Null alanı String'e çevirmeye çalışıyorsun,hatanın nedeni de bu olması lazım.Ya Null alan olmayacak vt'de.Default olarak değer atayacaksın .Ya da
o değeri;

Kod: Tümünü seç

Query1.FieldByName('Ad').Value
gibi alman lazım.

iyi günler...
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
varian alanda ne tür veri tutuyorsun.
sanırım kayıtlarından birinde o alanda olması gereken türde veri yok sende bu alandaki veriyi stringe çevirirken sıkıntı çıkıyor.
yalnız bana ilginç gelen nokta null alanın stringe çevrilememesi. çünki genelde null alanları boş döndürmesi lazım.
neyse sen çevrime yaptığın yere (tabi eğer yapıyorsan)

Kod: Tümünü seç

if dataset['alanadı']<>null then
çevirme işlemi
şeklinde bi güvenlik satırı koyarak sorunu halledebilirsin. yalnız veri olması gerekirken veri yoksa onu ayrıyeten incelemen lazım. başka yerlerdede sıkıntı çıkartabilir.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

merhaba

Mesaj gönderen pro_imaj »

Merhaba,
Cevaplarınız için teşekkür ederim üstadlar.

Cevaplarınız doğrultusunda bişeyler yapmaya çalıştım.

sonunda hatayı çözdüm.

Query oncalcfields olayında div ve mod ile ilgili hesaplamalar yapıyordum.
mod işleminde sorun oluştuğunu tepit ettim ve bunu normal hesap işlemi ile yaparak düzelttim

Kod: Tümünü seç

if  (STIQueryKoliici.Text <>'') then
begin
STIQueryKoli.Text:=STIQueryTopMiktar.Text Div STIQueryKoliici.AsVariant  ;
STIQueryArti.Text:=STIQueryTopMiktar.AsVariant-(STIQueryKoli.Text* STIQueryKoliici.AsVariant);
//STIQueryArti.Text:=STIQueryTopMiktar.Text Mod STIQueryKoliici.AsVariant;
//koli hesabı----
end;
Saygılarımla
Lütfen Forum daha çok destek olalım. Bu hazine Paylaşılarak artan bir hazine.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Cevapla