Actualizar existencia de productos e insertar nuevos si no se encuentran
Saludos, Uso delphi 7 y mysql 4.0 con los componentes zeos.
Mi problema es el siguiente: Tengo una tabla de productos y voy a actualizar su existencia en base a un dbgrid que que contiene otrosproductos, lo hago con un simple update de la siguiente manera: update productos set exis=exis+otrosproductos.cant where idproducto=otrosproductos.idproducto funciona bien, pero ¿Como le hago para que los productos que no encuentre en la tabla productos los inserte en esa tabla (productos)? O sea los que esten en la tabla otrosproductos y en la tabla productos solo sea actualizada su existencia, Y los que esten en la tabla otrosproductos pero NO en la tabla productos sean agregados a ella. Gracias por la ayuda que puedan brindarme. |
Hola
Si los productos estan identificados de igual modo en las dos tablas, puedes utilizar la sentencia "INSERT" para intentar insertar cualquier artículo cada vez que vas a actualizar existencias. Si intentas insertar un articulo que ya existe el "INSERT" dara un error y no lo insertará en caso contrario lo añadirá. Esta solución tiene el problema de que mandas un montón de sentencias "INSERT" que no valen para nada. También puedes consultar si existe o no el artículo antes de actualizar las existencias y añadirlo en caso de que no exista. Por último, podrías actualizar las dos tablas a la vez, es decir, cuando añadas un nuevo artículo, hazlo en las dos tablas, con lo que te aseguras que siemper tendrán los mísmos artículos. Espero que te sirva de algo |
Creo que en mysql no tenemos el maravilloso insert ... into ... from [Select]
y ya tienes un dataset para recorrer e insertar |
Gracias, voy a probar sus sugerencias a ver que tal queda.
|
|
ok, gracias, supongo que debe de aceptar restricciones where, voy a probar.
|
La franja horaria es GMT +2. Ahora son las 06:38:36. |
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