Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-01-2015
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.670
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Por eso te digo:
Cita:
nos cuentas lo que te ocurre, pones el código, nos dices el error y en dónde sale, etc.
Responder Con Cita
  #2  
Antiguo 19-01-2015
Catublipas Catublipas is offline
Miembro
NULL
 
Registrado: ene 2015
Posts: 55
Poder: 12
Catublipas Va por buen camino
Lo que me ocurre es que no se seguir. En tiempo de diseño lo tengo todo planteado(como he comentado lo tengo todo atado bien por separado) justo antes de juntar las dos consultas, es decir, no se recorrer los resultados(PROYECTOS) de la tabla PROYECTMANAGER, y que sirvan de parámetro para que solo se muestren en la tabla FACTURAS esos proyectos que ha recogido la consulta primera.
No se como recoger el resultado en el ClientDataSet y de ahi al Grid. Solo tengo la parte en tiempo de diseño. Todo mediante propiedades de los objetos.
En código solo tengo:

procedure TPrueba1Form.Button1Click(Sender: TObject);
begin
IBQuery1.Close;
IBQuery1.Open;
IBQuery2.Close;
IBQuery2.Open;
end;

Espero que sirva de aclaración .
Responder Con Cita
  #3  
Antiguo 19-01-2015
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.670
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
A ver, no entiendo el problema, tendrás que ser más específico.
Si tienes dos dataset (ibquery), debes recorrerlos e ir insertando los datos en otro query/dateset/clientdatset (lo que prefieras) y olvídate de dbgrid, ahí no tienes que hacer nada.
Algo similar a:
Código Delphi [-]
while not ibquery1.eof do
  ibqueryconjunto.append( ibquery1.xxxxx)
  ibqueryconjunto.post;
  ibquery1.next
end
while not ibquery2.eof do
  ibqueryconjunto.append( ibquery2.xxxxx)
  ibqueryconjunto.post;
  ibquery1.next
end
Ya están los registros en ibqueryconjunto, añades un datasource que apunte al mismo y al dbgrid también.

Y recuerda poner los tags al código fuente, ejemplo:



Gracias
Responder Con Cita
  #4  
Antiguo 19-01-2015
Catublipas Catublipas is offline
Miembro
NULL
 
Registrado: ene 2015
Posts: 55
Poder: 12
Catublipas Va por buen camino
Casimiro muchas gracias,
creo que ahí está la clave voy a probarlo, un par de preguntas y disculpa mi ignorancia, en:

Código Delphi [-]
ibqueryconjunto.append( ibquery1.xxxxx)

¿que debo poner en ibquery1.xxxx?

Y por último, estos dos bucles recorren todos los registros de las dos tablas y los añaden al datasetconnjunto, si no me equivoco,
pero ¿como hago para que la segunda consulta solo añada los registros de que coincidan con el campo común de la primera consulta?

Es decir,si yo tengo:

1ºConsulta

Código SQL [-]
Select NOMBREPM, CODIGOPM, PROYECTOS 
        From PROYECTMANAGER
        Where CODIGOPM = 6

2ºConsulta

Código SQL [-]
Select NUMEROFACTURA, IMPORTE, PROYECTOS 
        From FACTURAS
<-- Y que aquí saque las facturas de los proyectos listados en la consulta anterior :P.

Muchas gracias por tu ayuda Casimiro. Esto se me está atascando y tranquiliza mucho que alguien esté dispuesto a ayudarte.
Disculpa las molestias.
Responder Con Cita
  #5  
Antiguo 19-01-2015
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.670
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por Catublipas Ver Mensaje
¿como hago para que la segunda consulta solo añada los registros de que coincidan con el campo común de la primera consulta?
Pero se supone que en las consultas que has hecho a cada BD has filtrado por ese campo, ¿no?
Quiero decir que si buscas el proyecto=5, ya habrás hecho el "where proyecto=5" en ambas consultas, por lo que no tendrás que hacer nada más, te has traido los datos válidos de ambas BD.
Responder Con Cita
  #6  
Antiguo 19-01-2015
Catublipas Catublipas is offline
Miembro
NULL
 
Registrado: ene 2015
Posts: 55
Poder: 12
Catublipas Va por buen camino
Lo que yo quiero es que pasando por un edittext el código del Proyect Manager, me liste todos los Proyectos y sus facturas correspondientes.
El problema es que en la segunda base de datos no existe ningún campo que sea ProyectManager, por eso el "where CODIGOPM=6" (ya que yo supuse que necesitaría dos consultas) rescatará todos los proyectos de ese Proyect Manager y de todos esos proyectos quiero saber las facturas correspondientes. Te muestro en un esquema la relación que quiero:

Primera BBDD Segunda BBDD
TABLA PROYECTMANAGER TABLA PROYECTMANAGER

CODIGOPM NUMEROFAC
NOMBRPM IMPORTE
PROYECTOS<------------------------------------------->PROYECTOS
Responder Con Cita
  #7  
Antiguo 19-01-2015
Catublipas Catublipas is offline
Miembro
NULL
 
Registrado: ene 2015
Posts: 55
Poder: 12
Catublipas Va por buen camino
Lo que yo quiero es que pasando por un edittext el código del Proyect Manager, me liste todos los Proyectos y sus facturas correspondientes.
El problema es que en la segunda base de datos no existe ningún campo que sea ProyectManager, por eso el "where CODIGOPM=6" (por eso supuse que necesitaría dos consultas) rescatará todos los proyectos de ese Proyect Manager y de todos esos proyectos quiero saber las facturas correspondientes. Te muestro en un esquema la relación que quiero:

Código SQL [-]
  Primera BBDD                               Segunda BBDD
TABLA PROYECTMANAGER                     TABLA PROYECTMANAGER

     CODIGOPM                                 NUMEROFAC             
      NOMBRPM                                  IMPORTE
     PROYECTOS<------------------------------>PROYECTOS
               …

Es decir la consulta dos debería ser una consulta anidada de la otra .
Responder Con Cita
  #8  
Antiguo 19-01-2015
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.670
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Pero se supone que el campo 'proyectos' de la segunda BD tendrá el código del campo 'proyectos' de la primera BD, ¿no?

Por cierto, ¿por qué están en bases de datos separadas?
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Escuchar BBDD Guti13 Conexión con bases de datos 2 03-11-2014 17:49:23
Acceso a BBDD hybrid Conexión con bases de datos 1 14-11-2009 17:55:03
Consulta a tabla de bbdd Firebird externa Gonbamon Firebird e Interbase 4 05-07-2008 05:32:26
copia de bbdd majosf Conexión con bases de datos 3 18-11-2005 20:49:19
BBDD database.wrk ??? Mulero Conexión con bases de datos 8 03-11-2005 11:24:31


La franja horaria es GMT +2. Ahora son las 22:13:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi