Ver Mensaje Individual
  #2  
Antiguo 20-06-2007
elopezf elopezf is offline
Miembro
 
Registrado: mar 2007
Posts: 15
Reputación: 0
elopezf Va por buen camino
Smile

Yo tenia el mismo problema, y resulta que la configuracion regional por default es español España y por lo tanto te devuelve en los valores decimales una ,
el valor del campo te lo devuelve asi "34,56" y ese no es un valor decimal valido para la base.

Lo que tienes que hacer es:

Despues de iniciar tu aplicación (en el DPR) escribe esto:
Application.Initialize;
ShortDateFormat := 'dd/MM/yyyy';
DecimalSeparator := '.';
ThousandSeparator := ',';

Y despues continuas creando los objetos.

Bueno lo siguiente que hice para evitar el error en caso de que persista es crear una funcion que me devuelva el valor correctamente:

Function aDecimal(vValor: string):Real;
var
vPValor: String;
vEnDonde: integer;
begin
if vValor <> '' then
Begin
vPValor:= vValor;
if pos(',',vPValor) > 0 then
begin
vEnDonde:= pos(',',vPValor);
delete(vPValor,vEnDonde,1);
insert('.',vPValor,vEnDonde);
end;
Result:= strtofloat(vPValor);
End
else
Result:= 0.000;
End;

Y despues para usar la función solo escribo esto:

qryRecibosMercanciaEI_PESOBRUTO.value := aDecimal(cdsTxt.FieldValues['CAMPO14']);


Espero te ayude. A mi me resolvio el problema satisfactoriamente

Estamos en contacto. Bye
Responder Con Cita