PDA

Ver la Versión Completa : Problemas de con UPDATE


jmlifi
20-05-2005, 16:36:21
trabajo bajo Interbase5, tengo la siguiente codificación:

with ActPieza,sql do begin
clear;
Add('update piezas set ');
Add('tipom = ' +QuotedStr(TmpPzOfTIPOM.AsString));
Add(', tcorte = ' +QuotedStr(FloatToStr(Round(TimeStrToSeg(TmpPzOfTCP.AsString)))));
Add(', largo = ' +QuotedStr(tmpPzOfLARGO.AsString));
Add(', ancho = ' +QuotedStr(tmpPzOfANCHO.AsString));
Add(', tratmto = ' +QuotedStr(tmpPzOfTRATMTO.AsString));
Add(', notas = ' + QuotedStr(tmpPzOfNOTAS.AsString));
Add(', tipo = 0');
if Application.MessageBox('Pieza encontrada, ¿Desea cambiar su precio?','Pieza Existente',mb_IconQuestion +
mb_YesNo) = IdYes then
begin
Add(', pu = ' + QuotedStr(FormatFloat('0.00',tmpPzOfVPU.AsVariant))); //le paso 20,732838383
end;
Add(' where ref_n = ' +QuotedStr(RefStr));
ExecSql

Cuando miro la BD el campo 'pu' de tipo float me aparece el numero sin decimales: 20732838383.

¿Cómo puedo convertirlo a decimales?

mazinger
20-05-2005, 21:14:30
Por que no utilizas

tmpPzOfVPU.AsFloat

en vez de

tmpPzOfVPU.AsVariant

¿?

mazinger
20-05-2005, 21:17:08
Corrijo:

Lo he probado y es lo mismo...

roman
20-05-2005, 21:59:42
¿Le pasas 20,732838383 literalmente, es decir con todo y la coma? Pienso que debe ser un punto pues supongo que Interbase trabaja con punto decimal y no con coma decimal de manera que interpreta la coma como separador de miles.

// Saludos