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 08-06-2011
jfrancho jfrancho is offline
Miembro
 
Registrado: feb 2008
Posts: 50
Poder: 17
jfrancho Va por buen camino
Exclamation programar relación de tablas

Buenas tardes: tengo tres tablas, una llamada articulos, la segunda proveedores, y la tercera es la intermedia(que hace de nexo entre); el problema consiste en como programo la relación en delphi, ya que si son dos tablas, no hay problema por que en la tabla detalles programo la propiedad del componente ttable mastersource y masterfield y quedaria la relación maestro-detalle, ahora cuando intervienen tres tablas como lo programo.Desde ya muchas gracias.-
Responder Con Cita
  #2  
Antiguo 08-06-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo que no se entiende lo que has preguntado, pon la estructura de las tablas, la relación que hay entre ellas, lo que quieres conseguir, etc.
Responder Con Cita
  #3  
Antiguo 09-06-2011
jfrancho jfrancho is offline
Miembro
 
Registrado: feb 2008
Posts: 50
Poder: 17
jfrancho Va por buen camino
Unhappy programar relación de tablas

Tengo tres tablas, una llamada Tarticulos(con los sig. campos:id_articulos....clave principal), otra llamada Tproveedores(con los sig. campos:id_proveedores.....clave principal), y por último la que hace de nexo entre ambas tablas Tnexo(articulos y proveedores; con los sig. campos:id_nexo, clave principal; id_articulos, clave foranea; id_proveedores...clave foranea)para romper la relación muchos a muchos; entonces engancho la tabla Tarticulos con la tabla Tnexo por medio del campo id_articulos y lo mismo con la tabla Tproveedores, esto lo hago en access, pero como la hago en delphi, para que me muestre los datos en un dbgrid; trabajo con delphi 7 y access-Desde ya muchas gracias.-
Responder Con Cita
  #4  
Antiguo 09-06-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Esta mañana ando algo espeso, será porque no he tenido tiempo de tomarme un buen café.
Sigo sin comprender exactamente qué quiéres saber: ¿preguntas cómo hay que relacionar las tablas?, ¿preguntas cómo hacer el sql?, ¿preguntas si se puede hacer lo que quieres?, ¿preguntas si está bien o no?... disculpa mi torpeza
Responder Con Cita
  #5  
Antiguo 09-06-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por jfrancho
pero como la hago [...] para que me muestre los datos en un dbgrid;
Pero, ¿qué datos? ¿Los artículos? ¿Los proveedores? La verdad es que no lo dejas claro, pero hasta donde veo, en una relación muchos-muchos, cualquiera de las dos entidades puede hacer de maestro de la otra, según lo que te interese conocer:

a) Los proveedores de un posible artículo o
b) los articulos de un proveedor

Por ejemplo, en el caso (b), puedes tener una rejilla con los proveedores y otra con los artículos del proveedor seleccionado. ¿Cómo haces esto?

Pones a proveedor como maestro de nexo y enlazas la segunda rejilla a la tabla nexo, sólo que a ésta, al componente, le agregas un campo lookup que apunte al campo de la tabla artículo que quieras mostrar.

O bien, usas un query que haga la relación:

Código SQL [-]
select nexo.proveedor_id, articulo.* from nexo
left join articulo on articulo.id = nexo.articulo_id

y pones a proveedor como maestro de este query.

// Saludos
Responder Con Cita
  #6  
Antiguo 09-06-2011
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola jfrancho, en el caso de relación muchos a muchos es mejor que hagas tu maestro-detalle con Querys y sigas lo que te ha indicado Roman.

Para la relación maestro detalle:

Necesitas dos Querys donde cada query tiene su respectivo datasource, Query1->datasource1 y query2->datasource2, para que tengan la relación maestro detalle, el query2 que hara de detalle, en su propiedad datasource debe apuntar al datasource1

Para el ejemplo de roman (los articulos de un proveedor).
En el Query1 tendríamos esta consulta
Código SQL [-]
SELECT * FROM TProveedores

En el Query 2 tedríamos
Código SQL [-]
SELECT N.id_proveedores, A.Articulo
FROM TArticulos A, TNexo N
WHERE N.id_articulo=A.id_articulos and N.id_proveedores=:idProv

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
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
Relacion de dos tablas DBF Antuan Conexión con bases de datos 7 01-10-2005 21:10:50
Dos tablas en QuickReport sin relación ¥0n1 Impresión 1 22-12-2004 15:29:06
Problema con relacion de tablas Mario1980 Conexión con bases de datos 2 20-10-2004 15:02:53
Problema con relacion de tablas Mario1980 Varios 2 16-10-2004 01:09:48
Relacion de tablas con DBGrid TONIAM Conexión con bases de datos 0 15-04-2004 11:46:49


La franja horaria es GMT +2. Ahora son las 16:55:25.


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