FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
sumar campos string
Hola foro:
Tengo un problema al sumar campos de una tabla, ya que tengo todos los campos declarados como string pero ahora resulta que tengo q realizar una actualizacion de datos de un monton de campos con un update, pero resulta que al intentar sumar campos me los encadena. Estoy usando Delphi7 con acces 2000. Supongo q el problema estara resuelto en algun foro pq parece un error comun, pero juro q lo he buscado y no lo he encontrado. Agradeceria cualquier ayuda porque si he de cambiar los tipos de los campos he de rehacer medio programa. Muchas gracias por vuestra ayuda. |
#2
|
||||
|
||||
Los strings no aceptan operaciones aritméticas, si lo que tienes son campos strings con valores numéricos, te recomiendo replantear el diseño de tu base de datos, si no puedes hacer esto, lo que tienes que hacer es un CAST de tu campo al tipo de dato deseado.
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
|||
|
|||
gracias, casi me sirve, pero poniendo val(campo1) me coge el valor entero del numero, pero me deja los decimales.
No existira ninguna opcion para que coja los decimales?? |
#4
|
||||
|
||||
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#5
|
|||
|
|||
no se q pasa, pero no me funciona, me dice q falta operador, pongo el codigo aqui, a ver si ves algo:
Código:
form2.bonus.sql.text := 'update segchasis set importebruto =cast ( val(bonusfiat) as float) + cast ( val(bonusmotriz) as float)'; form2.bonus.ExecSQL; |
#6
|
||||
|
||||
Yo de por si quitaría los "VAL"
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#7
|
||||
|
||||
Como dice Federico sobran los VAL, para esto estamos utilizando el moldeado con CAST.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#8
|
|||
|
|||
ahora me da otro error diferente
'bonus: Missing SQL property' y el codigo me cada asi Código:
form2.bonus.sql.text := 'update segchasis set importebruto = cast(bonusfiat as float) + cast(bonusmotriz as float)'; form2.bonus.ExecSQL; |
#9
|
||||
|
||||
¿Que versión de Access es?... por lo menos en el 97 no existe el CAST, podrías utilizar CCur, CDbl...
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#10
|
|||
|
|||
Estoy usando el access 2000
|
#11
|
|||
|
|||
Hola foro:
ya he corregido el error del bonus, no se muy bien q pasaba, pero le he cambiado el nombre al query y vuelve a darmeel error de falta operador. el codigo me cada asi: Código:
form2.bonus.sql.text := 'update segchasis set importebruto = cast(bonusfiat as float) + cast(bonusmotriz as float)'; form2.bonus.ExecSQL; tampoco conozco la funcion cast o sea q no se si tengo q usarla asi. Agradeceria de nuevo vuestra ayuda porque como comente anteriormente si no tengo forma de sumar el valor de estos campos tengo que rehacer medio programa. Los campos los tengo declarados en access 2000 como strings y en este codigo segchasis es la tabla access, y importebruto, bonusfiat y bonusmotriz son los campos q tengo como string, pero contienen numeros decimales estoy usando delphi7 y para acceder a los datos uso ADO Última edición por tiagor64 fecha: 17-02-2005 a las 16:24:20. |
#12
|
|||
|
|||
Lo consegui
Al final lo consegui!!!
Se me ocurrio una tonteria pero ha funcionado, aqui os muestro al final como lo he conseguido: Código:
form2.bonofiat.sql.text := 'update segchasis set importetotal = (importe*1)+(bonusfiat*1)+(bonusvolantederecha*1)+(bonusmotriz*1)'; form2.bonofiat.ExecSQL; Gracias a todos. Algun comentario sobre la solucion?? |
|
|
|