Club Delphi  
    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 Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-03-2005
Walterdf Walterdf is offline
Miembro
 
Registrado: may 2003
Ubicación: Buenos Aires
Posts: 152
Poder: 22
Walterdf Va por buen camino
DBGrid con varias querys ¿se puede?

Buenas
Necesito mostrar en un dbgrid varias columnas pero con datos de dos querys diferentes, por ejemplo: el codigo de una mercaderia esta en una tabla y la descripcion en otra pero en la grilla debe salir el codigo y su descripcion.
Lo que intenté tambien es: en una misma query llamar a las dos tablas que contienen dichos datos pero el problema es que si el codigo no existe en la 2da tabla (y esto es muy probable) la consulta no muestra nada.
Seguramente no estoy acertando el camino, si alguien sabe que se suele hacer en estos casos agradeceré mucho que me oriente.
Un abrazo y gracias de antemano.

Walter
PD: perdón, uso Delphi 4 y tablas Paradox.
Responder Con Cita
  #2  
Antiguo 15-03-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Tienes que hacer un consulta utilizando un Tquery y allí unes las tablas, con un Inner Join o simplemente por el campo que case:

Código SQL [-]
 Select e.Codigo, e.Nombre, n.Sueldo, nDescuentos
 from Empleados as E, Nominas as N
 Where E.Codigo = N.Codigo

Lo conectas con un TdataSource y este a su vez con una rejilla y ya puedes ver los datos.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 15-03-2005
Walterdf Walterdf is offline
Miembro
 
Registrado: may 2003
Ubicación: Buenos Aires
Posts: 152
Poder: 22
Walterdf Va por buen camino
Te cuento que eso fue lo que hice pero el problema es que el campo E.Codigo puede estar vacio y en ese caso no trae nada a la consulta, yo necesito que, por mas que esté vacío, muestre los demás campos.
Muchas gracias de todas maneras

Última edición por Walterdf fecha: 15-03-2005 a las 20:26:01. Razón: Me equivoqué de tabla
Responder Con Cita
  #4  
Antiguo 15-03-2005
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Poder: 21
ASAPLTDA Va por buen camino
Dbgrid + 2 Tablas

hOLA AMIGO DEL FORO, no se si para paradox aplique pero puedes hacerlo asi
select a.codigo,b.codigo from tablaa a left outer join tablab b on a.codigo =b.codigo
Selecciona todos los de la primera tabla sin importar si existe en la segunda
Responder Con Cita
  #5  
Antiguo 16-03-2005
Raptor Raptor is offline
No confirmado
 
Registrado: jul 2003
Ubicación: Santo Domingo R.D.
Posts: 105
Poder: 0
Raptor Va por buen camino
Smile

Holas chicos espero que todos esten como yo. de maravilla.

bueno a lo que vinimos.

Walterdf el codigo que pone marcoszorrilla es excelente pero sino tiene data en una de las tablas entonces no sales nada. debe de hacerlo de esta otra forma. que tambien es un join como plantea marco

Select e.Codigo, e.Nombre, n.Sueldo, nDescuentos
from Empleados as E Left Outer Join Nominas as N
ON (E.Codigo = N.Codigo)
Where E.Codigo = 5

Si no existe en dato en la tabla n entonces te mostrara las demas informacion pero te pone la palabra null en la informacion de la tabla n.

una segunda forma es crear un campo Lookup o no se bien como se escribe con 2 componentes Query. donde el primero debe de contener toda la informacion de la tabla E y el segundo los de la tabla n.

pasos.
1- doble clik sobre tabla E y agrega los campos
2- Selecciona la opcion new field
3- crea tus campos virtuales(lookup)
4- le dice que sera un campo lookup y luego le especifica cual sera el campo para relacionar (e.codigo) y luego especifica el dataset de donde quiere ver el dato (esta debe de ser el segundo query)
5- especifica cuales campos quieres amarar (e.codigo y n.codigo) y al final le dice cual es campo que quiere como resultado. ---> Sueldo y luego ok.

en el dbgrid crea los campos y especifica cada campo y listo.

suerte..

excusame si no fui muy claro.. supongo que la primera opcion era mejor.

suerte...
Responder Con Cita
  #6  
Antiguo 16-03-2005
Walterdf Walterdf is offline
Miembro
 
Registrado: may 2003
Ubicación: Buenos Aires
Posts: 152
Poder: 22
Walterdf Va por buen camino
Hola gente!
Antes que nada muchas gracias a todos por darme una mano ya que andaba algo complicado y ya solucioné todo.

Raptor: Se entendió muy bien y opté por la primera opción ya que las tablas prefiero no tocarlas y además funcionó de maravillas. Además tambien fue la solución que me sugirió ASAPLTDA.

Muchas gracias nuevamente por la rapidez en las respuestas!!!.

Un abrazo y que sigan bien.

Walter
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


La franja horaria es GMT +2. Ahora son las 04:10:07.


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