Ese metodo lo conozco, y al utilizarlo me inserta bien los datos.
Pero lo que queria era solucionar el problema que tiene Lazarus con los parametros numericos cuando estos tienen mas de 4 decimales. Ya que esto es un problema que va a afectar a todos los que lo usen.
Por ahora de forma temporal estoy insertando el valor de forma directa:
Por ejemplo tengo que hacer lo que sigue:
scant:=AnsiReplaceStr(FormatFloat('#0.000000', ds.FieldByName('cantidad').AsFloat), ',', '.');
sexit:=AnsiReplaceStr(FormatFloat('#0.000000', ds.FieldByName('exist').AsFloat), ',', '.');
strsql := 'insert into vtractual (idac, ida, num, fecha, factura, importe, idp, codigo, desp, um, area, idcto, cantidad, pre1, pre2, saldo1, saldo2, exist, clave) ';
strsql := strsql + 'values (:iEnt, :iAlm, :iNum, :dFec, :sFac, :cImp, :iIdp, :sCod, :sDes, :sUm, :sArea, :iIdc, ' + scant + ', :cPcup, :cPcuc, :cVcup, :cVcuc, ' + sexit + ', :sCla)';