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;
Publicado:
Vie Ene 28, 2011 2:54 am
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: update con decimales
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:
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.
Publicado:
Dom Feb 06, 2011 6:46 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: update con decimales
Anuncios
Échale un vistazo también a este post, por si acaso:
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
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A