FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Tratando de incrementar un valor con UPDATE
Hola Amigos.
soy nuevo en Firebird. e revisado muchas paginas de internet, pero no e encontrado nada para dar solucion a mi problema. Siempre e trabajado con delphi y paradox. Ahora estoy tratando de pasar mi codigo a SQL. Estoy experimentando con Firebird 2.5. El problema que tengo es el siguiente: Tengo una base de datos con una tabla llamada comanda, la cual almacena los pedidos de una mesa. Entonces lo que quiero, es, actualizar la cantidad de un producto modificando el contenido del campo cantidad. El punto es que no logro actualizar el campo cantidad, sumandole a su valor original, un nuevo valor. Algo como: Campo_Cantidad = Campo_Cantidad + variable.
** Si en el codigo escribo: "ParamByName", solo graba el valor de "iCantidad", ignorando el valor original que ya estaba grabado. ** Si en el codigo escribo: "FieldByName", Me da un error que dice: SQLDataSet1 Field 'cantidad' not found. Alguna idea de como poder hacerlo. De antemano, muy agradecido. |
#2
|
|||
|
|||
Hola. un alcance.
Cuando digo: Si en el codigo escribo: "ParamByName", me refiero a esta linea: SQLDataSet1.ParamByName('Cantidad' ).AsFloat := SQLDataSet1.ParamByName('Cantidad' ).AsFloat + iCantidad; y cuando digo: Si en el codigo escribo: "FieldByName", me refiero a esta linea: SQLDataSet1.ParamByName('Cantidad' ).AsFloat := SQLDataSet1.FieldByName('Cantidad' ).AsFloat + iCantidad; Espero, quede mas claro. Gracias de antemano. |
#3
|
|||
|
|||
La actualización del campo CANTIDAD la tienes que hacer en el update de la base de datos, no en el parámetro, es decir:
No tiene sentido hacerlo en el parámetro, porque el parámetro no sabe cual es el valor que tiene actualmente el campo CANTIDAD en la base de datos. El parámetro ICANTIDAD es donde pondrías en la consulta. Tampoco creo que tenga mucho sentido actualizar la mesa y el salón, si forman parte del mismo WHERE de la consulta que vas a actualizar. Última edición por WHILENOTEOF fecha: 23-12-2017 a las 14:03:51. |
#4
|
|||
|
|||
Hola Whilenoteof. agradezco tu ayuda.
Hice lo que me sugeriste. Cambié la asignación del parametro cantidad a: Set Cantidad = Cantidad + iCantidad
pero me da un error: SQLDataSet1 Field 'cantidad' not found; tambien lo probe quitando la linea: SQLDataSet1.ParamByName('Cantidad' ).AsFloat := iCantidad;.. y nada. ..y luego quite esta: SQLDataSet1.ExecSQL(False);.. y nada. hice todas las conbinaciones que se me ocurrieron y no produce nada, o en el peor de los casos me da error. Alguna nueva idea? Gracias por la ayuda. muy agradecido |
#5
|
|||
|
|||
Cita:
da error, porque no hay ningún parámetro que se llame Cantidad, tal como yo te lo he puesto sería iCantidad, es decir: , asegúrate también que la query tiene definido ese parámetro (dependiendo de los componentes que utilices, se creará automáticamente a partir de la notación :iCantidad). |
#6
|
||||
|
||||
Hola
Si el parametro se llama icantidad debes usar ese nombre y no 'cantidad'.
Saludos
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar. Antonio Machado |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
como incrementar valor en ibdatapump | SmartZooft | Firebird e Interbase | 11 | 04-10-2017 20:57:30 |
tratando de hacer un sum de un count | julyus | SQL | 5 | 03-04-2009 03:04:01 |
Incrementar campo según el valor de otro | subzero | Firebird e Interbase | 3 | 06-08-2008 22:41:52 |
tratando de interceptar excepcion | Cañones | OOP | 4 | 16-05-2007 02:52:39 |
UPDATE de un campo dependiendo del valor de un campo de otra tabla | Javi2 | SQL | 5 | 18-04-2005 17:35:05 |
|