Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   guardar en mysql formato moneda (https://www.clubdelphi.com/foros/showthread.php?t=81445)

edgar_prospero 15-11-2012 01:52:42

guardar en mysql formato moneda
 
que hay amigos aqui ando con un pequeño problema, resulta que estoy haciendo una suma de varios edit y muestro el resultado en un label,
pero por ejemplo me queda con este formato 3,500.27 entonces cuando ese dato lo guardo en la base de datos solo me guarda el 3, ya que lo demas no lo reconoce, quisiera ver si me pueden ayudar para solucionar esto, a continuacion pongo el codigo que uso para guardar ese dato:

Código Delphi [-]
modulo.tablacaja.SQL.Clear;
modulo.tablacaja.Close;
modulo.tablacaja.SQL.Add('insert into caja( total )'+
' values(: ptotal)'+
'on duplicate key update total=: ptotal');

modulo.tablacaja.ParamByName('ptotal').AsString:=total.caption;

modulo.tablacaja.Execute;

ecfisa 15-11-2012 02:40:24

Hola Edgar.

¿ Con que tipo numérico esta declarado el campo total en la tabla caja ?

Saludos.

edgar_prospero 15-11-2012 02:41:35

gracias por responder pues lo tenia en float y despues le intente con decimal pero no tuve exito

ecfisa 15-11-2012 02:55:59

Hola.

Otra duda más, ¿ Que componente es tablacaja ?

Saludos.

edgar_prospero 15-11-2012 02:57:11

tmytable de los componentes de mysql access

nlsgarcia 15-11-2012 03:07:29

edgar_prospero,

Dudas:

1- ¿Estas salvando en la tabla caja el campo total en formato editado: 3,500.27?

2- ¿Funciona si los salvas sin edición como 3500.27?

3- ¿Como esta definida la precisión y la escala del campo?, debería ser por lo menos para este caso particular (6,2)

Espero sea útil :)

Nelson.

edgar_prospero 15-11-2012 03:09:57

si pues lo estoy intentando guardar asi 3,500.27
si lo intento como mencionas 350027 asi si logro guardarlo totalmente el dato
en la escala del campo le tenia 9,2 no se si ese pudiera ser problema para que me aparezca 3.0000

nlsgarcia 15-11-2012 03:19:49

edgar_prospero,

No lo salves como 350027, sálvalo como 3500.27, ¿Funciona así?

La precisión y la escala de (9,2) están bien, no debería ser el problema.

Espero sea útil :)

Nelson

ecfisa 15-11-2012 03:29:33

Hola

Proba de asignar el valor al parámetro de este modo:
Código Delphi [-]
  modulo.tablacaja.ParamByName('ptotal').Value := StrToFloat(total.caption);

  // o, si el componente tiene la propiedad AsFloat, de este modo:
  modulo.tablacaja.ParamByName('ptotal').AsFloat := StrToFloat(total.caption);

Saludos.

edgar_prospero 15-11-2012 16:40:55

es que a lo mejor me falto explicar algo, cuando hago la suma le tengo de la siguiente forma
Código Delphi [-]
 total.Caption := FormatFloat('###,###,###,##0.00 ', strToFloat(total.caption));
para que me aparezca en el label 3,500.27 y me dicen que lo guarde 3500.27 pero como le haria para quitarle la coma(,) a la hora de guardarla porque ya e intentado como me sugieren pero sigo sin obtener resultados

nlsgarcia 15-11-2012 17:42:34

edgar_prospero,

Puedes eliminar la coma con la función StringReplace:
Código Delphi [-]
modulo.tablacaja.ParamByName('ptotal').Value := StringReplace(Total.Caption , ',', '', [rfReplaceAll]);

Espero sea útil :)

Nelson.

edgar_prospero 15-11-2012 17:51:45

gracias por la ayuda esto ultimo es lo que necesitaba problema resuelto de nuevo muchas gracias:D


La franja horaria es GMT +2. Ahora son las 04:52:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi