Delphi 10.2 ADO bağlantı ve SQL Express VT kullanıyorum. Numeric(18,6) tipinde tanımlı bir alana 0.021788 değeri kaydediyorum. Table'a baktığımda alan değerinin ondalık kısmına sadece 4 basamak kayıt yaptığını görüyorum ve alan değeri 0.0218 oluyor. Ondalık kısmı 2 basamak kesiyor ve yuvarlıyor. Alanı tipini Decimal(18,6) kullansam da değişen bir şey olmuyor. Database'e girip ilgili alana elle 0.021788 yazabiliyorum. Bunu neden yaptığını bir türlü bulamadım. Daha öncede forumda bu konuyu gündeme getirmiştim fakat henüz bir çözüm bulunamadı. Konuyla ilgili acil yardımlarınızı rica ediyorum.
Problem için çözüm ararken aynı probleme yabancı bir forumda rastladım, ama bir çözüm sunulmamış orada da sanırım. Belki ustalarımıza bir yol gösterebilir diye paylaşıyorum.
http://www.delphigroups.info/2/3/186074.html
Kod: Tümünü seç
DM1.STOKHAREKET.Close;
DM1.STOKHAREKET.SQL.Clear;
DM1.STOKHAREKET.SQL.Add('UPDATE STOKHAREKET SET GIREN_MIKTAR= :vGIREN_MIKTAR');
DM1.STOKHAREKET.SQL.Add('WHERE STOK_NO=:vSTOK_NO AND DEPO=:vDEPO');
DM1.STOKHAREKET.Parameters.ParamByName('vSTOK_NO').value:= '101143';
DM1.STOKHAREKET.Parameters.ParamByName('vDEPO').value:= '03';
DM1.STOKHAREKET.Parameters.ParamByName('vGIREN_MIKTAR').Value:= 0.021788;
DM1.STOKHAREKET.ExecSQL;
Kod: Tümünü seç
DM1.STOKHAREKET.Parameters.ParamByName('vGIREN_MIKTAR').Value:= 0.021788;