raised exception class EConverterror with message "875469874510000"
is not a valid integer value şeklinde yazdığım prog hata veriyor.prg kodu aşagıdakı gıbıdır.faturatoplam alanını ve kdvtoplam alanı integerdan nasıl kurtarabılırım.
var
fkkdv,fkmik,kd,ft,s,k,tut,fiyat,fno,tar,kod,mik:integer;
fkkdvyolla,fkmikyolla,kdyolla,ftyolla,syolla,kyolla,tutyolla,fiyatyolla,fnoyolla,taryolla,kodyolla,mikyolla:String;
begin
QUERY1.CLOSE;
QUERY1.SQL.CLEAR;
QUERY1.SQL.ADD('SELECT Faturadetay, Firmakod, Faturatarih, Faturano, Referans, Birimfiyat, Miktar, Tutar, Kdv, Sno, Ftoplamtutar, Ftoplamkdv');
QUERY1.SQL.ADD('FROM "muhasebe.db" Muhasebe');
QUERY1.OPEN;
WHILE NOT QUERY1.EOF DO BEGIN
TABLE2.INSERT;
table2.FieldByName('faturadetay').asstring:= query1.FieldByName('faturadetay').asstring;
table2.FieldByName('faturadetay').asstring:='3DE';
table2.FieldByName('referans').asstring:= query1.FieldByName('referans').asstring;
s:= query1.FIELDBYNAME('sno').ASinteger;
syolla := '';
FmtStr(sYolla,'%.3d', [s]);
TABLE2.FieldByName('sno').ASstring := sYolla;
k:= query1.FIELDBYNAME('kdv').ASinteger;
kyolla := '';
FmtStr(kYolla,'%.13d', [k]);
TABLE2.FieldByName('kdv').ASstring := kYolla;
tut:= query1.FIELDBYNAME('tutar').ASinteger;
tutyolla := '';
FmtStr(tutYolla,'%.15d', [tut]);
TABLE2.FieldByName('tutar').ASstring := tutYolla;
fiyat:= query1.FIELDBYNAME('birimfiyat').ASinteger;
fiyatyolla := '';
FmtStr(fiyatYolla,'%.13d', [fiyat]);
TABLE2.FieldByName('birimfiyat').ASstring := fiyatYolla;
fno:= query1.FIELDBYNAME('faturano').ASinteger;
fnoyolla := '';
FmtStr(fnoYolla,'%.6d', [fno]);
TABLE2.FieldByName('faturano').ASstring := fnoYolla;
tar:= query1.FIELDBYNAME('faturatarih').ASinteger;
taryolla := '';
FmtStr(tarYolla,'%.8d', [tar]);
TABLE2.FieldByName('faturatarih').ASstring := tarYolla;
table2.FieldByName('firmakod').asstring:='0451';
{kod:= query1.FIELDBYNAME('firmakod').ASinteger;
kodyolla := '';
FmtStr(kodYolla,'%.4d', [kod]);
TABLE2.FieldByName('firmakod').ASstring := kodYolla;}
mik:= query1.FIELDBYNAME('miktar').ASinteger;
mikyolla := '';
FmtStr(mikYolla,'%.11d', [mik]);
TABLE2.FieldByName('miktar').ASstring := mikYolla;
QUERY1.Next;
TABLE2.POST
end;
table2.First;
WHILE NOT table2.EOF DO BEGIN
TABLE3.INSERT;
TABLE3.FieldByName('faturadetay').ASSTRING:=table2.FIELDBYNAME('faturadetay').ASSTRING;
TABLE3.FieldByName('firmakod').ASSTRING:=table2.FIELDBYNAME('firmakod').ASSTRING;
TABLE3.FieldByName('faturatarih').ASSTRING:=table2.FIELDBYNAME('faturatarih').ASSTRING;
TABLE3.FieldByName('faturano').ASSTRING:=table2.FIELDBYNAME('faturano').ASSTRING;
TABLE3.FieldByName('referans').ASSTRING:=table2.FIELDBYNAME('referans').ASSTRING;
TABLE3.FieldByName('birimfiyat').ASSTRING:=table2.FIELDBYNAME('birimfiyat').ASSTRING;
TABLE3.FieldByName('miktar').ASSTRING:=table2.FIELDBYNAME('miktar').ASSTRING;
TABLE3.FieldByName('tutar').ASSTRING:=table2.FIELDBYNAME('tutar').ASSTRING;
TABLE3.FieldByName('kdv').ASSTRING:=table2.FIELDBYNAME('kdv').ASSTRING;
TABLE3.FieldByName('sno').ASSTRING:=table2.FIELDBYNAME('sno').ASSTRING;
table2.Next;
TABLE3.POST
END;
table1.first;
table4.insert;
fkmik:= table1.FIELDBYNAME('ftoplamtutar').ASinteger;
fkmikyolla := '';
FmtStr(fkmikYolla,'%.15d', [fkmik]);
table4.FieldByName('faturatoplam').asstring:=fkmikyolla;
fkkdv:= table1.FIELDBYNAME('ftoplamkdv').ASinteger;
fkkdvyolla := '';
FmtStr(fkkdvYolla,'%.13d', [fkkdv]);
table4.FieldByName('toplamkdv').asstring:=fkkdvyolla;
table4.post;
end;
raised exception class EConverterror with message 8754698745
Flaoat ve integer alanları String olarak göstermişsin ve atamalarınıda veri tipine göre yapmamışsın.
Kolay Gelsin...
Kolay Gelsin...
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
hüseyin bey nasıl olmalı gerci söz ile ifade ettiniz ama anlamadım.bir alanda sorun yaratıyor aşagıdakı dızılımı nasıl degıstırecegım
var
fkmik:integer;
fkmikyolla:String;
fkmik:= table1.FIELDBYNAME('ftoplamtutar').ASinteger;
fkmikyolla := '';
FmtStr(fkmikYolla,'%.15d', [fkmik]);
table4.FieldByName('faturatoplam').asstring:=fkmikyolla;
var
fkmik:integer;
fkmikyolla:String;
fkmik:= table1.FIELDBYNAME('ftoplamtutar').ASinteger;
fkmikyolla := '';
FmtStr(fkmikYolla,'%.15d', [fkmik]);
table4.FieldByName('faturatoplam').asstring:=fkmikyolla;
Tablo tanımlarında Hesaplama işlemi yapılan tablolar Integer, Float, Currency tipinde tanımlanır. Bu tanımlamalar belli bir uzunlukta değer tutabilir tabii rakamsal olarak. String olarak tanımlanmış alanlar ise Karakter,, metinsel tipte veriler saklar.
Olay şu 1 + 1 işlemini yapmak ve neticeyi almak istiyorsan bunları integer tanımlamalısın.
a:integer;
b:integer;
c:integer;
c:= a + b;
şayet birini string olarak tanımlarsan hataya sebeb verecektir.
Gelelim konumuza Adet ve Fiyat gibi alanların var bunları Tablonda nasıl tanımladığına bak. ve Integer ise AsInteger olarak Float ise AsFloat olarak değiştir.
Kolay Gelsin...
Olay şu 1 + 1 işlemini yapmak ve neticeyi almak istiyorsan bunları integer tanımlamalısın.
a:integer;
b:integer;
c:integer;
c:= a + b;
şayet birini string olarak tanımlarsan hataya sebeb verecektir.
Gelelim konumuza Adet ve Fiyat gibi alanların var bunları Tablonda nasıl tanımladığına bak. ve Integer ise AsInteger olarak Float ise AsFloat olarak değiştir.
Kolay Gelsin...
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
sizin bana daha önce gönderdiğiniz prg parçacıgı
procedure TForm1.Button1Click(Sender: TObject);
var
EditCek:Integer;
EditYolla:String;
begin
EditCek := 123333;
EditYolla := '';
FmtStr(EditYolla,'%.15d', [EditCek]);
Edit1.Text := EditYolla;
end;
şeklinde idi. Editcek:987456321; şeklinde değer ataması yapılınca hata veriyor.int yerine int64 yapılınca kabul edıyor.ama yukarıdakı prgda da sizin dedıgınız gıbı bir hatadan ziyade integer alanın yetersız oldugunu dusunuyorum ve int64 e degıstırdıgımde de convert ıslemı gerceklesmıyor.
procedure TForm1.Button1Click(Sender: TObject);
var
EditCek:Integer;
EditYolla:String;
begin
EditCek := 123333;
EditYolla := '';
FmtStr(EditYolla,'%.15d', [EditCek]);
Edit1.Text := EditYolla;
end;
şeklinde idi. Editcek:987456321; şeklinde değer ataması yapılınca hata veriyor.int yerine int64 yapılınca kabul edıyor.ama yukarıdakı prgda da sizin dedıgınız gıbı bir hatadan ziyade integer alanın yetersız oldugunu dusunuyorum ve int64 e degıstırdıgımde de convert ıslemı gerceklesmıyor.
Bakın integer tanımlanmış değer –2147483648..2147483647 arasında bir değer alıyor. Bence siz benim yazdıklarımı bir daha okuyup nedemek istediğime yoğunlaşsanız daha iyi olur kanısındayım.
Kolay Gelsin...
Kolay Gelsin...
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
hüseyin bey prog calısıyor.fakat 10 handen daha buyuk bır alan convert edemıyorum.hata verıyor.int64 tanımladım ama bunu
var
yeni:int64;
begin
yeni:= table1.FIELDBYNAME('ftoplamtutar').ASinteger;
fkmikyolla := '';
Fmtstr(fkmikYolla,'%.15d', [yeni]);
table4.FieldByName('faturatoplam').asstring:=fkmikyolla;
şeklinde yaptım ama 10 haneyı gene gecemedım.11 hane olunca convert etmıyor size bunu acıklamak isterim.sorunumu sıze tam olarak aktaradım anlasılan
var
yeni:int64;
begin
yeni:= table1.FIELDBYNAME('ftoplamtutar').ASinteger;
fkmikyolla := '';
Fmtstr(fkmikYolla,'%.15d', [yeni]);
table4.FieldByName('faturatoplam').asstring:=fkmikyolla;
şeklinde yaptım ama 10 haneyı gene gecemedım.11 hane olunca convert etmıyor size bunu acıklamak isterim.sorunumu sıze tam olarak aktaradım anlasılan