Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-08-2011
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 17
jafera Va por buen camino
Busqueda de datos en dos bases distintas

Hola a todos.

Uso FB 1.5 y D6

A ver si me explico bien con el problema que tengo:

Tengo dos datamodules en la aplicacion, uno con los datos de la base general y otro con las fotos, imagenes, etc. (lo hice así por un tema de peso)

Pues bien necesitaría armar una consulta mas o menos así:

Código SQL [-]
 
SELECT * FROM DATAMODULE1.TABLE1
WHERE ID NOT IN (SELECT ID FROM DATAMODULE2.TABLA1)

para que me devuelva todos los registro de datamodule1.tabla1 que no tengan foto en datamodule2.tabla1

Gracias

Josep
Responder Con Cita
  #2  
Antiguo 14-08-2011
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Hola Josep.

No se puede.

Tienes que actualizarte a Firebird 2.5, con esa versión sí que se puede realizar algo de este estilo (los EXECUTE STATEMENT se pueden desviar a distintas bases de datos).

Con Firebird 1.5 no tienes más remedio que hacer el cálculo en Delphi, recorriendo todos los registros de Tabla1 y consultando si tienen Foto en Tabla2 (con un Locate, o bien lanzando una segunda consulta).

Salut xiquet.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #3  
Antiguo 14-08-2011
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 17
jafera Va por buen camino
Gracias por la respuesta.

De momento no puedo actualizar a FB 2.5 ya que la base de datos de la gestión de la empresa rula con esta versión y el cambio a 2.5 es muy a la
largaaaaaaa.

Si quiero hacer lo que me dices de recorrer los registros, supongo que debo crear una nueva tabla en base1 con los datos básicos de base2.tabla1 que quiero controlar.

Es correcto?

Si es así debo actualizar base1.tabla1 cada vez que añada una foto en base2.tabla1?

Saludos

Josep
Responder Con Cita
  #4  
Antiguo 15-08-2011
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Hola Josep.

Puedes hacerlo así, pero yo en realidad me refería a lanzar dos consultas desde Delphi, atacando a las dos tablas en las dos bases de datos.

Entonces solo tienes que recorrer todos los registros en la primera consulta, y mirar si existen en la segunda consulta (por ejemplo con un .Locate).

Salut
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #5  
Antiguo 16-08-2011
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 17
jafera Va por buen camino
Gracies Marc.

No acabo de verlo claro.

Si yo hago

Código SQL [-]
 
Select Distinct CODI_C from BOM0001F

me devuelve los registros que tengo en la tabla de los camiones con foto, correcto. Esto esta en la base de datos 1.

Si despues quiero hacer un

Código SQL [-]
 
Select * from BOM0001
Where ID not in //CODI_C de la tabla anterior

Esto está en la base de datos 2

no se como hacerlo ya que si hago un locate como me comentas me devolverá un solo registro y yo lo que quiero (bueno, pretendo) es sacar un listado.

Igual es que pretendo hacer algo que no se puede o mi conocimiento sql no da para más.

Saludos

Josep
Responder Con Cita
  #6  
Antiguo 17-08-2011
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Hola Josep.

Cita:
Empezado por jafera Ver Mensaje

no se como hacerlo ya que si hago un locate como me comentas me devolverá un solo registro y yo lo que quiero (bueno, pretendo) es sacar un listado.
En efecto, esto solo te devuelve un registro, indicando si ese camión tiene foto o no tiene foto. Por eso tienes que hacer un bucle comprobando todos los camiones (aunque probablemente deberías hacerlo al revés, primero consultas la tabla BOM0001, y mediante un bucle, para cada uno de sus registros compruebas con un Locate si existe su equivalente en BOM0001F, es decir, si ese camión tiene foto o no tiene foto).

Si al final quieres sacar un listado de los camiones que no tienen foto, entonces para hacerlo muy sencillo, te recomiendo que añadas un campo TE_FOTO en la tabla de camiones, y cuando hagas el recorrido comprobando cada camión, si tiene foto o no tiene foto, en ese momento le actualizas su campo TE_FOTO.

Una vez calculado correctamente ese campo para todos los camiones, entonces ya puedes sacar sin problemas un listados de solo los camiones sin foto.

Salut.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #7  
Antiguo 17-08-2011
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 17
jafera Va por buen camino
Gracias Marc.

Tal y como me sugieres al final he puesto un campo foto (S o N) en la tabla de camiones, actualizando este campo a S cada vez que añado una foto y a N si es que la borro y no tengo más que una foto, en caso de que tenga más de una y borre una sola no le digo que marque a N.

Saludos "agostiniano-calurosos"

Josep
Responder Con Cita
Respuesta



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Insertar en 2 Bases distintas en la misma operación ToritoCapo PostgreSQL 4 01-03-2011 18:07:14
Como Asociar Tablas de bases de Datos distintas pcicom Firebird e Interbase 1 29-09-2004 18:39:32
conexión entre distintas bases de datos jsanchez Firebird e Interbase 1 09-03-2004 22:35:22
como hacer una consulta a dos bases de datos distintas yavy SQL 2 16-12-2003 20:51:30
Usar tablas de dos bases de datos distintas davidcm SQL 2 26-06-2003 17:05:05


La franja horaria es GMT +2. Ahora son las 15:55:43.


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