FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Actualizar inventario desde DbGridEh
Hola Amigos del Club.
uso Delphi XE y BD - Firebird Mi pregunta es la Siguiente: Tengo una tabla que se llama Inventarios. Dentro de ella hay un campo que se llama Codigo_Producto este campo es la llave primaria. y entre otros tengo un campo que se llama cantidad. Necesito actualizar la cantidad de los productos desde un DbGrideh. esto lo lo gro bien. es decir con el procedimiento que pongo a continuacion me actualiza correctamente el problema es que no me suma lo que hay en el inventario con el parametro que le doy. Ejemplo: Tengo un producto cuya codigo es 100 y la cantidad en inventarios es 500. Cuando lo actualizo con una cantidad de 100 (Deberia darme 600) entonces lo que hace es reemplazar la cantidad de 500 por la de 100 es decir actualiza con el parametro pero no lo suma. Por favor me puden guiar en esta inquietud; de antemano mil gracias.
El Query desde el cual se hace la actualizacion es el siguiente
Última edición por Camilo fecha: 14-08-2015 a las 17:03:56. Razón: Amigos moderadores que pena con ustedes. Creo que cree este hilo donde no correponde y no se como corregirlo. disculpas mil |
#2
|
||||
|
||||
Hola Camilo.
Es que la declaración INSERT OR UPDATE hace solamente eso. Es decir verifica que la clave primaria (o la columna especificada en la cláusula MATCHING) existan. Si alguna de las anteriores no existe, realiza una inserción de modo contrario una modificación. Pero según entiendo, estas intentando incrementar el valor de una determinada columna y la instrucción solo está diseñada para insertar o modificar de acuerdo a si existe o no el valor especificado. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
|||
|
|||
Hola Ecfisa. Gracias por tu tiempo, experiencia y sobre todo la voluntad de colaboración.
Sobre el tema te cuento que tienes razón yo intento ademas sumar la cifra de la nueva compra. posteriormente restar la cifra de la venta. en fin. Me puedes orientar en mi pregunta por fa. Sera que hay que hacer un ciclo, sera que debo calcular un campo inicialmente y luego si subirlo?. Entonces me toca hacer otro procedimiento? me puedes orientar un poco sobre cual hacer. Mil Gracias. Última edición por Camilo fecha: 15-08-2015 a las 01:02:03. |
#4
|
||||
|
||||
Hola Camilo.
Creo que podrías hacerte un procedimiento similar a este ejemplo:
Ejemplos de llamada, Agrega 4 unidades e incrementa 15.5 el precio del producto código '1':
Decrementa 4 unidades y decrementa 15.5 el precio del producto código '1':
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
Hola Ecfisa.
El código lo implemento y no pasa nada. es decir no bota error pero no actualiza nada tampoco. por otro lado tengo la duda de ese "IBQueryTmp". de que se trata? Una aclaración que me parece pertinente: los campos cantidad y precio (integer y DoublePresicion) respectivamente los actualizo con base en los registros de una factura que se refleja en el DbGridEh1. si esta factura contiene 5 registros de productos comprados y en el inventario hay 4 de los 5 productos entonces el comportamiento seria actualizar los 4 que existen en los dos campos e insertar el 5. por eso el recorrido que hago del grid. mi problema esta en que los parámetros no están tomando las cantidades y precios del inventario sino que toman solo las nuevas y (o) no hace nada o las duplica. |
#6
|
|||
|
|||
Hola recapitulo para ubicarnos en donde voy.
Si hago esto entonces me inserta o me actualiza bien la primera vez pero si ya existe el registro entonces me actualiza sin sumarme los nuevos valores de cantidad y precio.
Y si hago esto entonces me acrtualia perfecto pero si el registro ya existe si no existe no lo inserta.
Este el el llamado de la funcion que ecfisa expone arriba. Entonces necesito combinar las dos. es decir si no esta el registro entonces creelo pero si esta entonces actualice los valores cantidad y precio. Gracias por la ayuda que pueda recibir. Última edición por ecfisa fecha: 15-08-2015 a las 23:33:39. Razón: corregir identación para mejor visualización |
#7
|
||||
|
||||
Hola Camilo.
Cita:
También podría suceder que esté realizando la modificación y no la veas reflejada por que no actualizaste el TDataSet asociado al TDBGrid... "IBQueryTmp", es otro TIBQuery qualquiera, de uso general, pero también podría haberlo escrito de este modo: Si no deseas complicarte, una buena alternativa es el uso del TIBDataSet, un componente que conjuga las virtudes de una tabla y una consulta, te recomiendo que revises estos enlaces que tratan sobre él: Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#8
|
|||
|
|||
hola. tienes toda la razón el procedimiento si funciona correctamente es que no lo veía actuar pero.......Escribí otro mensaje en que aclaro que las dos cosas funcionan perfectamente pero independientes. me gustaria saber como (por que no pude solo) hacer para esto leí los documentos y son interesantes pero confieso mi bloqueo mental y no fui capaz de hacer esto. Le echas una miradita al mensaje No. 6 por fa.
|
#9
|
|||
|
|||
Señores del Club este tema ha quedado resuelto hice unas modificaciones no tanto al código como si al concepto. y el código aportado por ecfisa en sus respuestas 4 y 7 me vino como anillo al dedo. Puedo decir que prescindí del método Update Or insert por lo que bien explican los textos y aportes.
Amigo Ecfisa Eres muy amable y "Calidoso" en tus conocimientos. Mil Gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Actualizar Inventario | JJMR2009 | Varios | 4 | 23-06-2011 21:11:03 |
Mostrar columnas en un Dbgrideh | Nayi | SQL | 3 | 16-09-2008 16:43:09 |
wordwrap in dbgrideh (EhLib) | ElCherchu | Varios | 5 | 12-07-2007 00:14:09 |
Actualizar Archivos Desde FTP | papu24ar | Varios | 4 | 21-03-2007 03:50:57 |
Insertar en un DbgridEh columnas con distintos componentes | mateamargo | OOP | 5 | 16-06-2005 21:35:03 |
|