Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-10-2010
marcos_0586 marcos_0586 is offline
Miembro
 
Registrado: jul 2010
Posts: 28
Poder: 0
marcos_0586 Va por buen camino
mostrar datos de varias tablas relacionadas

hola amigos del foro, les cuento que tengo que hacer unas consultas en delphi 6 y la verdad es que no encontre por ningun lado como hacerlas, bueno el tema es el siguiente, tengo una tabla llamada pedido en la cual tengo cod_pedido,cod_cliente,descripcion; logicamente ademas de esta tabla tengo la tabla cliente que se relaciona con pedido para levantar su codigo, esto seria la estructura de mis tablas ahora el problema. tengo que realizar una consulta en la cual ingresando el codigo de pedido me traiga el dato del mismo pero no con el codigo de cliente sino con su respectivo nombres que se encuentran en la tabla cliente. la verdad es que no se que componente usar ni donde mostrar el dato si en un edit o en un dbedit o en algun otro campo(menos en un dbgrid), bueno espero que me puedan ayudar y desde ya gracias por todo.
Responder Con Cita
  #2  
Antiguo 05-10-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Disculpa, tal vez trataste de explicar muchas cosas a la vez, pero no tengo claro que en realidad lo que necesitas.
Tal vez despacito para novatos.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 05-10-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por marcos_0586 Ver Mensaje
...tengo que realizar una consulta en la cual ingresando el codigo de pedido me traiga el dato del mismo pero no con el codigo de cliente sino con su respectivo nombres que se encuentran en la tabla cliente.
Vamos por partes...

Por un lado tienes los componentes para realizar la consulta. Dependiendo de la Base de Datos (que noi comentas cual es), deberás usar unos u otros. ADO Para SQL Server, Access, DBase,... IBExpress si usas Interbase, Firebird,...
Lo normal es utilizar un componentes de conexión y uno para la consulta (TQuery, TADOQuery, TIBQuery, TzQuery,...)

En cuanto a la consulta necesitas hacer una JOIN. Revisa la ayuda o algun manual de SQL -o busca en los foros- para ver ejemplos. Básicamente una JOIN te permite relacionar campos de diferentes tablas para obtenerjusto lo que tú necesitas. Algo así:

Código SQL [-]
SELECT * FROM PEDIDO 
INNER JOIN CLIENTES
ON Pedido.Cod_Cliente=Clientes.Codigo

Lo último es dobde mostrar el Dato. Lo más sencillo es que utilices comnponentes da Datos, que para eso están. Si utiñlizas un DBGrid, basta con un conector (TDataSource) y un DBGrid. Igual si lo quieres en un DBEdit. Necesitas un Conector y el componente. El el caso del DBEdit, el conector se "engancha" al TQuery (propiedad DataSet) y el DBEdit al conector con las propiedades (DataSource y DataField).

Pruébalo y si tienes problemas, ya dirás...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 05-10-2010
marcos_0586 marcos_0586 is offline
Miembro
 
Registrado: jul 2010
Posts: 28
Poder: 0
marcos_0586 Va por buen camino
gracias neftali, yo habia echo una consulta con un componente query pero al parecer la debo haber echo mal ya que cuando quiero relacionar el dbedit con el datafield me aparece en blanco, ahora probare tu opcion y trabajare sobre ella muchas gracias.
Responder Con Cita
  #5  
Antiguo 05-10-2010
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Cita:
Empezado por marcos_0586 Ver Mensaje
gracias neftali, yo habia echo una consulta con un componente query pero al parecer la debo haber echo mal ya que cuando quiero relacionar el dbedit con el datafield me aparece en blanco, ahora probare tu opcion y trabajare sobre ella muchas gracias.

Hola.

Igual seria bueno que indicaras el codigo que utilizastes, y asi te podemos decir que estaba mal.

Salu2
__________________
BlueSteel
Responder Con Cita
  #6  
Antiguo 05-10-2010
marcos_0586 marcos_0586 is offline
Miembro
 
Registrado: jul 2010
Posts: 28
Poder: 0
marcos_0586 Va por buen camino
Cita:
Empezado por BlueSteel Ver Mensaje
Hola.

Igual seria bueno que indicaras el codigo que utilizastes, y asi te podemos decir que estaba mal.

Salu2
Hola, el tema es que no tengo un codigo solamente relacione los dbedit a la tabla solo tengo esto:
Código Delphi [-]
procedure TForm23.Button1Click(Sender: TObject); 
begin  
     if form1.table7.findkey([edit1.Text])= true  then
     panel1.visible:=true; end;

en el cual el edit1.text contendra el numero de pedido buscado, si lo encuentra me muestra los dbedit con sus respectivos datos que estan dentro del panel1, el problema esta que el dbedit de empleado es un valor numerico que hace referencia a la tabla empleado y queria saber la forma para que en lugar del numero me muestre el nombre del empleado

Última edición por marcos_0586 fecha: 05-10-2010 a las 22:39:13.
Responder Con Cita
  #7  
Antiguo 06-10-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Marcos.

A ver si te entedí bien...

Tenés dos tablas: PEDIDOS y CLIENTES, supongamos que están definidas así:
Cita:
TABLA PEDIDOS
COD_PEDIDO
COD_CLIENTE
DESCRIPCION

TABLA CLIENTES
COD_CLIENTE
NOMBRE
DIRECCION
Y, dado el número de pedido (que está en un edit) querés obtener los datos de la tabla PEDIDOS más algunos de la tabla CLIENTES ?

Si es eso, haría:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin 
  with IBQuery do
  begin
    Close;
    SQL.Text:= 'SELECT COD_PEDIDO,COD_CLIENTE,DESCRIPCION,NOMBRE,DIRECCION '+
               'FROM PEDIDOS, CLIENTES '+
               'WHERE PEDIDOS.COD_PEDIDO = ' + QuotedStr(Edit1.Text)+
               'AND PEDIDOS.COD_CLIENTE = CLIENTES.COD_CLIENTE';
    Open;
  end;
end;

Saludos.

Última edición por ecfisa fecha: 06-10-2010 a las 03:40:03.
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
'Post' datos con TClientDataSet de varias tablas Bauhaus1975 Varios 1 05-01-2009 09:22:31
Datos de varias tablas en un Report mariofur Impresión 2 07-06-2007 22:18:06
borrar datos de varias tablas davidfp SQL 1 02-06-2005 18:23:47
Varias cosas relacionadas con linux Delphi Man Varios 4 16-01-2004 11:42:46
Actualizar mediante un UpdateSQL varias tablas relacionadas Sprite Conexión con bases de datos 11 24-09-2003 15:03:52


La franja horaria es GMT +2. Ahora son las 22:11:57.


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