Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-10-2004
ctronx ctronx is offline
Miembro
 
Registrado: jun 2004
Posts: 214
Poder: 20
ctronx Va por buen camino
Unhappy 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.
Responder Con Cita
  #2  
Antiguo 18-10-2004
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 21
kayetano Va por buen camino
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
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
  #3  
Antiguo 18-10-2004
Avatar de ruina
ruina ruina is offline
Miembro
 
Registrado: jun 2004
Posts: 196
Poder: 20
ruina Va por buen camino
Creo que en mysql no tenemos el maravilloso insert ... into ... from [Select]

Código SQL [-]
Select * from otrosproductos
where codigo not in (select codigo from productos)

y ya tienes un dataset para recorrer e insertar
__________________
todo el mundo debe creer en algo... yo creo que voy a tomarme otra copa.
Responder Con Cita
  #4  
Antiguo 18-10-2004
ctronx ctronx is offline
Miembro
 
Registrado: jun 2004
Posts: 214
Poder: 20
ctronx Va por buen camino
Gracias, voy a probar sus sugerencias a ver que tal queda.
Responder Con Cita
  #5  
Antiguo 18-10-2004
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 21
kayetano Va por buen camino
Hola

Con MySql SI que se puede hacer
Código SQL [-]
INSERT INTO miTabla SELECT * FROM miTabla
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
  #6  
Antiguo 19-10-2004
ctronx ctronx is offline
Miembro
 
Registrado: jun 2004
Posts: 214
Poder: 20
ctronx Va por buen camino
Thumbs up

ok, gracias, supongo que debe de aceptar restricciones where, voy a probar.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 02:36:53.


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
Copyright 1996-2007 Club Delphi