Delphi 10.2 ve sql express database kullanıyorum. Database'de alan tipi numeric(28,10) olarak tanımlı. Problemim şöyle, database de tabloyu açarak doğrudan elle 0.0217885 gibi bir değer yazdığımda hiçbir sorun olmadan değeri yuvarlamadan olduğu gibi kaydediyor. Fakat uygulamadan aynı değeri "insert into" komutuyla kaydettiğim zaman ondalık basamağı 4 diğite yuvarlıyor. Kaydetmeden önce uygulamada mesaj ile yazılacak değeri görüyorum, ondada bir sorun gözükmüyor, değer doğru. Kaydederken değeri hiçbir şekilde round etmiyorum, Fakat değeri 0.0218000 olarak kaydediyor. Aşağıda gözüken kodu kullanarak kayıt ekliyorum, resimde görülen tabloda ki 1. kaydı elle girdim, bir sorun yok. 2. kaydı ise aşağıda görülen kod ile ekledim ve sonuç 2. satırda gözüktüğü gibi, yuvarlıyor. Yardımlarınızı rica ediyorum.
Kod: Tümünü seç
ST_TEST.SQL.CLEAR;
ST_TEST.SQL.Add('INSERT INTO TEST (STOK_NO,STOK_ADI,MIKTAR)');
ST_TEST.SQL.Add('values (:vSTOK_NO,:vSTOK_ADI,:vMIKTAR)');
ST_TEST.Parameters.ParamByName('vSTOK_NO').Value:= ExcelWorkSheet1.Cells.Item[ satir, 5 ].Value;
ST_TEST.Parameters.ParamByName('vSTOK_ADI').Value:= STOKADI;
ST_TEST.Parameters.ParamByName('vMIKTAR').Value:= 0.02127885;
ST_TEST.ExecSQL;
STOK NO STOK ADI MİKTAR
-------------------------------------------------------------------------------------------------
101001 MİL 0.02127885 DATABASE ÜZERİNDEN ELLE GİRDİĞİM KAYIT
101002 PROFİL 0.0213 YUKARIDA Kİ KOD İLE EKLEDİĞİM KAYIT