Utilizamos cookies propias y de terceros. Al navegar entendemos que aceptas el uso de cookies. +Info.
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Usuario
· Wiki

Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - update con decimales
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information update con decimales

Publicar nuevo tema Responder al tema
Foros de discusión » Borland Delphi, Codegear Delphi .Net   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
webmasterplc
Excelente usuario


Registrado: Oct 31, 2009
Mensajes: 26

Asunto: update con decimales Responder citando

Buenas tengo un inconveniente, tengo una tabla en mysql con el campo subtotal, iva y total de tipo double con 2 decimales cuando quiero actualizar estos campos despues de tener valres se me borran los decimales por ejemplo si debe ir 100,12 me guarda solo los 100 y no los 100,12 eso cuando el hago un update porque cuando guardo los datos por pimer avez con un post si los hace aca el codigo que utilizo para actualizar

Código:
begin
Data.sqtrans.Close;
Data.sqtrans.SQL.Text:='UPDATE trans SET subtotal='+QuotedStr(edt5.Text)+', iva='+QuotedStr(edt6.Text)+', total='+QuotedStr(edt7.Text)+',status='+QuotedStr('Causado')+'  WHERE nrocarta='+QuotedStr(edt1.Text)+'';
Data.sqtrans.Close;
end;
MensajePublicado:
Vie Ene 28, 2011 2:54 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: update con decimales Responder citando



Anuncios



webmasterplc escribió:
Buenas tengo un inconveniente, tengo una tabla en mysql con el campo subtotal, iva y total de tipo double con 2 decimales cuando quiero actualizar estos campos despues de tener valres se me borran los decimales por ejemplo si debe ir 100,12 me guarda solo los 100 y no los 100,12 eso cuando el hago un update porque cuando guardo los datos por pimer avez con un post si los hace aca el codigo que utilizo para actualizar

Código:
begin
Data.sqtrans.Close;
Data.sqtrans.SQL.Text:='UPDATE trans SET subtotal='+QuotedStr(edt5.Text)+', iva='+QuotedStr(edt6.Text)+', total='+QuotedStr(edt7.Text)+',status='+QuotedStr('Causado')+'  WHERE nrocarta='+QuotedStr(edt1.Text)+'';
Data.sqtrans.Close;
end;


Te recomendamos que uses parámetros para pasar valores a una consulta SQL, en vez de hacerlo directamente concatenando, esto te puede ocasionar problemas.

No nos has comentando cómo conectas Delphi con MySQL: ODBC, ZeosDBO, DAO, etc. De todas formas te mostramos un ejemplo del uso de parámetros con el componente gratuito para acceso a MySQL con Delphi:

Código:

  tc.Close;
  tc.SQL.Clear;
  tc.SQL.Add('update facturas);
  tc.SQL.Add('set preciocompra = :pPrecioCoste, ');
  tc.SQL.Add('  fechamodprecio = :pFecha');
  tc.SQL.Add('where codigo = :pCodigo');
  tc.ParamByName('pPrecioCoste').DataType := ftFloat;
  tc.ParamByName('pPrecioCoste').AsFloat := precioCoste;
  tc.ParamByName('pPrecioCoste').DataType := ftFloat;
  tc.ParamByName('pPrecioCoste').AsFloat := precioCoste;
  tc.ParamByName('pCodigo').DataType := ftFloat;
  tc.ParamByName('pCodigo').AsFloat := codigoMaterial;
  tc.ParamByName('pFecha').DataType := ftFloat;
  tc.ParamByName('pFecha').AsDateTime := Now;
  tc.ExecSQL;
  tc.Close;


Como puedes observar, cada parámetro requiere el tipo de datos y el valor, así es el propio programa el que se encarga de formatearlo acorde con el formato del motor de base de datos.

En tu caso, sería, más o menos:

Código:

begin
  Data.sqtrans.Close;
  Data.sqtrans.SQL.Text := 'UPDATE trans SET subtotal = :pSubtotal, '
    + ' status = :pStatus';
  Data.sqtrans.ParamByName('pSubtotal').DataType := ftFloat;
  Data.sqtrans.ParamByName('pSubtotal').AsFloat :=
      StrToFloatDef(edt5.Text, 0);
  Data.sqtrans.ParamByName('pStatus').DataType := ftString;
  Data.sqtrans.ParamByName('pStatus').AsString := 'Causado';
  Data.sqtrans.Close;
end;


Esto último no lo hemos comprobado, pero al menos te harás una idea de cómo funcionar con parámetros.
Tampoco sabemos qué tipo de componentes es "sqtrans", suponemos que es un TQuery o algún componente parecido.
MensajePublicado:
Dom Feb 06, 2011 6:46 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: update con decimales Responder citando



Anuncios



Échale un vistazo también a este post, por si acaso:

http://www.ajpdsoft.com/modules.php?name=Foros&file=viewtopic&t=634
MensajePublicado:
Dom Feb 06, 2011 6:49 pm
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » Borland Delphi, Codegear Delphi .Net  

Cambiar a:  
Key
  Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Este sitio web NO CONTIENE malware, todos los programas con código fuente aquí. Autor: Alonso Javier Pérez Díaz Google+ Síguenos en Google+