Delphi - ayuda por favor

 
Vista:

ayuda por favor

Publicado por david (20 intervenciones) el 09/05/2007 16:14:49
Tengo el siguiente codigo:

query2.sql.Add ('update articulo set prov1='+quotedstr(prov1.text)+
',refprov1='+quotedstr(refprov1.text)+
' where ref='+quotedstr(query1.fieldByName('ref').value));

Mi problema es que tengo el campo coste1 y quiero que lo actualice de coste1.text, pero coste1 es un numero decimal,entonces como tengo que ponerlo dentro del update para pasarlo a float?

gracias y un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:ayuda por favor

Publicado por E.T. (1244 intervenciones) el 09/05/2007 16:45:52
Hay varias funciones de conversín entre tipos

prueba la siguiente:

StrToFloat(coste1.text);//Sin el quotedstr
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:ayuda por favor

Publicado por E.T. (1244 intervenciones) el 09/05/2007 16:50:51
Corrección

En lugar de esto:

StrToFloat(coste1.text);//Sin el quotedstr

Sólo pon el coste1.text sin QuotedStr, puesto que es un número
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda por favor

Publicado por david (20 intervenciones) el 09/05/2007 17:08:36
Gracias, funciona correctamente si meto numeros enteros como 1,2,3 pero si le meto decimales no funciona. y necesito meterle decimales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda por favor

Publicado por Fer (8 intervenciones) el 09/05/2007 18:25:41
Supongo que Coste1 es un TEdit. Puedes cambiar por un TMaskEdit y configurar la máscara de este componente para que sólo admita números con o sin decimales. Así te aseguras que lo que escriba el usuario siempre será numérico.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:ayuda por favor

Publicado por E.T. (1244 intervenciones) el 09/05/2007 23:08:00
Igual debería funcionar puesto que el sql del query acepta strings y al ser un numero no debe llevar comillas, el campo de tu tabla es tipo float o su equivalente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda por favor

Publicado por david (20 intervenciones) el 09/05/2007 23:28:47
el campo es moneda con 4 decimales.

si meto un numero entero no da problema , pero cuando le meto decimales me pone ERROR DE SINTAXIS EN LA INSTRUCCION UPDATE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda por favor

Publicado por David (20 intervenciones) el 09/05/2007 23:57:04
y si dejo el tedit vacío tambien me pone lo de ERROR DE SINTAXIS DE LA INSTRUCCION UPDATE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda por favor

Publicado por Juzam (821 intervenciones) el 09/05/2007 23:58:53
Puede que se trate de un fallo debido al separador de decimales ¿Has probado con poner puntos en lugar de comas?

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda por favor

Publicado por David (20 intervenciones) el 10/05/2007 00:01:10
y si pongo

',coste1='+strtofloat(coste1.text)+

me dice incompatible types:string and extended, me dice que el campo coste1 es un string pero lo miro en el delphi y me pone query1coste1 Tfloatfield.

Ya no se que mas hacer
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda por favor

Publicado por nombre (106 intervenciones) el 10/05/2007 00:29:17
¿Has probado lo que te dice Juzam?.

Deja el código como está y mete delante esta línea.

DecimalSeparator := '.';

a ver que pasa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda por favor

Publicado por David (20 intervenciones) el 10/05/2007 00:36:30
como dice Juzam con el '.' funciona bien, pero si yo le meto 2.4 me guarda 2,4 y luego vuelve a petar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda por favor

Publicado por David (20 intervenciones) el 10/05/2007 00:55:02
esque access guarda los decimales con una ',' alguien sabe como cambiarlo a un '.'?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda por favor

Publicado por David (20 intervenciones) el 10/05/2007 01:15:01
he cambiado en la configuracion regional del windows las comas por los puntos y solucionado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda por favor

Publicado por nombre (106 intervenciones) el 10/05/2007 14:04:56
Debes de solucionarlo de otra forma, porque cuando tu aplicación se instale en otro ordenador no sabes que configuaración regional tendrá.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda por favor

Publicado por David (20 intervenciones) el 10/05/2007 22:28:58
ya lo he solucionado poniendo

decimalseparator:='.';
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar