Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   ayuda con numeros de tipo flotante (https://www.clubdelphi.com/foros/showthread.php?t=38120)

vero_17jm 04-12-2006 02:14:55

ayuda con numeros de tipo flotante
 
hola

mi problema es que se supone que el usuario me proporciona el precio de compra y el sistema debe de calcular el precio de venta lo cual se hace :

precio de compra=precio de compra +15%

pero al utilizar el inser into me marca error me podrian explicar como manejar los datos de tipo flotante

de antemano muchas gracias :)

Caral 04-12-2006 17:59:22

Hola vero_17jm
Una buena manera de ayudar es viendo el codigo.
Tu pregunta es muy dificil sin tener los datos.
Que base de datos usas ?, si usas.
Con que la enlazas ?
En que parte de que codigo te da el error ?
Como llamas a los datos float ?, desde codigo o componente ?
Un poco de explicacion no hace mal, tal vez siendo un poco mas detallista logremos entender el problema mejor.
Saludos

vero_17jm 07-12-2006 00:22:40

hola caral perdon por no contestar antes voy a tratar de ser mas explicita

var
z:real;
z:=strtofloat(Edit5.Text)*0.15;
z:=strtofloat(Edit5.Text)+z;

con este codigo calculo lo que es el precio de venta

w:=StrToFloat(edit5.text);
w:=trunc(w);
z:=trunc(z);
query1.SQL.Clear;
query1.SQL.Add('UPDATE almacen SET nom_pro='+''''+MaskEdit2.Text +''''+
',F_cadu='+''''+datetostr(DateTimePicker1.Date)+''''+
',E_max ='+''''+edit4.Text +''''+
', Precio_c='+floatTostr(w)+
', Precio_v='+floatToStr(z)+
' WHERE Clave ='+''''+MaskEdit1.Text+'''');
query1.ExecSQL;

con este codigo lo almaceno en la tabla pero me marca on error

lo que hice para corregirlo es truncar z y w con la funcion trunc pero pues no almacena el valor correcto del precio de venta debido a la funcion trunc lo que quiero saber como guardo el valor flotante en la tabla

por ejemplo si el precio de compra es 5
que guarde en la tabla el precio de venta el cual es 5.75


de antemano gracias

Lepe 07-12-2006 14:06:51

Yo con tantas comillas simples me mareo.

Lo primero es que al enviar un número no se ha de poner entre comillas simples, la sql debe quedar así:
Código SQL [-]
UPDATE almacen SET nom_pro= 5.75
Otro dato importante: Si un dato en la Base de datos está en formato fecha, no debes pasarle un string, debes pasarle un TDate, evitarás muchos errores de ejecución.

Te aconsejo algo así:
Código Delphi [-]

query1.SQL.text := 'UPDATE almacen SET nom_pro = :prNom_pro '+
',F_cadu= :prF_cadu '+
',E_max = :prE_max '+
', Precio_c= :prPrecio_c '+
', Precio_v= :prPrecio_v '+ 
' WHERE Clave = :prClave';

query1.parambyname('prNom_pro').AsXXXX := maskedit1.text;
query1.parambyname('prF_cadu').AsDate := .....
....
query1.ExecSQL;

Es decir, a cada uno de los datos se le asocia un parámetro en la consulta (un parámetro es todo aquello que lleva delante los dos puntos), en mi caso, añado siempre el prefijo "pr" para hacerlo más legible (pr = parámetro).

Cada uno de los parámetros se le asigna el valor que tendrá en su correspondiente tipo de datos.

Saludos


La franja horaria es GMT +2. Ahora son las 19:09:02.

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