Delphide Sorun Var Bakarmısınız Lüften ??
-
arkadaşlar şimdi ben paradox 7 veritabanında alanlarımı belirliyorum işte vize1 vize2 final ortalama diye
bunları vize1,vize2,final bunları veritabanında S(Short İnteger) olarak tanımlıyorum delphide ise integer olarak... ortalama yi ise veritabanında N(Number) Float olarak tanımlıyorum buraya kadar sorun yok sıra geliyor veritabanı kayıtına
procedure TForm1.Button1Click(Sender: TObject);
var
v1,v2,final:integer;
ort:real;
begin
v1:=strtoint(edit4.text);
v2:=strtoint(edit5.text);
final:=strtoint(edit6.Text);ort:=((v1*20)/100)+((v2*20)/100)+((final*60)/100);
edit7.Text:=floattostr(ort);query1.SQL.Clear;
query1.SQL.Add('insert into notlar(numara,ad,soyad,vize1,vize2,final,ortalama)');
query1.SQL.Add('values("'+edit1.Text+'","'+edit2.Text+'","'+edit3.Text+'","'+edit4.Text+'","'+edit5.Text+'","'+edit6.Text+'","'+edit7.Text+'")');
query1.ExecSQL;end;
bu işlemlerin sonunda type missmatch expression diye bir hata alıyorum onun sebebide ortalama değerini tam sayı buldugunda sorun yok ama ne zaman virgullu sayı çıksa yukarıdaki hatayı veriyor...ee ben alanı zaten float olarak ayarladım neden böyle bir haya veriyor anlamadım....
yardımı olabilirmisiniz...
-
nedenini bilemem ama onu floattostr(ort) yapıp string şeklinde kaydedebilirsin belki virgüllü olduğu için sql sorgusunu etkiliyordur.
-
hoca dönüştürmeleri yanlış yapmışın sanırsam
texte yazdırmak istediklerini inttostr
ort ya yazdırmak istediğinide strtofloat
yap
başka yerinde hata var mı bilmiyorum
-
Veritabanindaki alanlarin tipleri ile form uzerinde cevirdigin tipler arasinda uyusmazlik olabilir.Yani veritabanindaki string bir alana integer deger yazdiriyor olabilirsin.
-
konu baya eskimişti ama yardımlarınız için teşekkurler yinede :)