Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Poner maestro varias tablas en una sola (https://www.clubdelphi.com/foros/showthread.php?t=10229)

marial 13-05-2004 16:58:16

Poner maestro varias tablas en una sola
 
Hola a todos!
Hace poco que trabajo con Delphi, y estoy intentanto hacer una aplicacion con sqlserver. De momento todo va bien, el problema ha aparecido cuando necesito asociar como MasterSource 5 tablas que son maestras de una única. Si alguien me puede ayudar lo agradecería mucho. Pues no puedo seguir con mi proyecto.

Gracias de antemano.

Combat-F2D 13-05-2004 23:38:28

si nos mandases la estructura de esas tablas podriamos mirarlo mas a fondo.

podria ser??

sanxpue 14-05-2004 01:58:09

si..
 
Si manda las estructura de los datos...y como quieres que se enlacen je :mad:

Weno haber donde dan los cursos de adivinas o te quedas en el hoyo

marial 14-05-2004 10:14:56

Estructura de las tablas:
 
Teneis razón, pero es la primera vez que pregunto en el foro. Lo intento de nuevo, a ver si me explico bien:

Tengo 9 tablas: Hay una de ellas que tira de las otras 8 (que son totalmente independientes), pues tiene como foreign key las primary key de las 8 anteriores.

Mi pregunta es: ¿Cómo le indico a la tabla 9 que las otras 8 son MasterSource de ella? Lo he hecho con 2 tablas y sale genial, pues se lo pongo en la propiedad y listo, pero cuando son más tablas, ¿cómo se hace? ¿es con un modulo de datos? ¿como diseño el modulo de datos?:confused:

Gracias de nuevo.

__cadetill 14-05-2004 10:37:14

Hola marial

Anto todo darte la bienvenida a los foros. Tambien recomendarte la lectura de la Guía de Estilos (ver firma) y la lectura de este hilo. En ellos verás claramente cómo formular las preguntas :)

Por otra parte, como dicen los compañeros, falta información. Mira de responder a estas preguntas a ver si podemos ayudarte

- Motor de conexión (BDE, ADO, DBX,.....)
- Base de datos
- Nombre de tablas y campos involucrados en las relaciones
- Quieres acceder mediante SQL o no
- Otras que se te ocurran después de la lectura de la Guia de Estilos y el hilo recomendado

Nos leemos

marial 14-05-2004 11:10:14

Perdón...
 
Perdonad si os he vuelto un poco locos con mi "pregunta", pero es que es la primera vez que hacía uso de un foro. Acabo de leer como debo formular las preguntas (espero que esta vez lo haga bien) así que allá voy:

-Sistema operativo: Windows XP
-Motor de conexión: MYSSQLConnection
-Base de datos: SQL Server
-Acceder mediante SQL: SI
-Versión Delphi: 7
-Tablas: Como os dije es una base de datos con 9 tablas (por seguridad de la empresa no puedo ponerlas aqui). Se relacionan entre ellas por medio de las claves primarias y externas. Hice una pequeña prueba usando solamente 2 tablas, poniendo en la propiedad MasterSource de la tabla detalle el DataSource correspondiente de la tabla maestra, al igual que indicándole los campos en la propiedad MasterFields. Hasta aquí todo bien.
El problema me surge cuando quiero asociar los foreign keys de esa tabla "X" con las tablas Maestro (que son unas 5 tablas diferentes y que entre ellas no tienen relación).

Espero que ahora me haya expresado bien. Perdonad por antes.

Gracias otra vez.;)

__cadetill 14-05-2004 11:25:38

Cita:

Empezado por marial
-Motor de conexión: MYSSQLConnection

esto es ADO???

Cita:

Empezado por marial
-Tablas: Como os dije es una base de datos con 9 tablas (por seguridad de la empresa no puedo ponerlas aqui). Se relacionan entre ellas por medio de las claves primarias y externas. Hice una pequeña prueba usando solamente 2 tablas, poniendo en la propiedad MasterSource de la tabla detalle el DataSource correspondiente de la tabla maestra, al igual que indicándole los campos en la propiedad MasterFields. Hasta aquí todo bien.
El problema me surge cuando quiero asociar los foreign keys de esa tabla "X" con las tablas Maestro (que son unas 5 tablas diferentes y que entre ellas no tienen relación).

No, si esto creo que ha quedado claro, yo me refería más bien a:

Tabla1: campo1, campo2,....
Tabla2: campo3
Tabla3: campo4
Tabla4: campo5, campo6
....

donde has de sustituir TablaX por el nombre de la tabla real y campoX por el nombre de los campos que intervienen en la relación

No obstante, si es mediante SQL que quieres acceder, te servirá un componente de Query (TADOQuery??) y poner la sentencia SQL pertinente

Código SQL [-]
select campos_que_quiero
from tabla9 
  inner join tabla1 on condición_de_relación
  inner join tabla2 on condición_de_relación
  inner join tabla3 on condición_de_relación
  inner join tabla4 on condición_de_relación
  inner join tabla5 on condición_de_relación
  inner join tabla6 on condición_de_relación
  inner join tabla7 on condición_de_relación
  inner join tabla8 on condición_de_relación
where
  condiciones_de_filtrado

Espero te sirva

Paoti 15-05-2004 02:17:59

Hola, buen dia a todos!

Cita:

el problema ha aparecido cuando necesito asociar como MasterSource 5 tablas que son maestras de una única

por la forma de tus posts entendi que una de las tablas( de las ocho) la estas haciendo maestra de la tabla principal..... (asi lo entendi)

Marial, por que no lo intentas al reves, ya que tu tabla unica es la que tiene la refenencia de las ocho tablas independientes, porque no asiganas a esta que sea la maestra, y a las demas que sean las de detalle, asi te debe de funcionar, Asi en cada una de las restantes, le asignas el datasource de la tabla principal, y en masterfield el campo que la relaciona la tala detalle con la tabla maestra. asi cuando cambies un dato en la tabla maestra (la unica) las demas se cambiaran....




que estes bien, y espero te sirva


P.S. Mañana es mi cumple!




*/*/*/*/*/*/*/*/*/*

Estudia y anda en la calle, por que asi obtendras dos educaciones y seras el doble de listo que los demas...



Paoti Rios

Paoti 15-05-2004 02:24:15

Cita:

Empezado por Paoti
Hola, buen dia a todos!


sorry, por este post, si no lo puedo borrar, no viene al caso, soloe stoy probando, porque en mi post anterior puse una cita, pero no me aparecio el nombre, y esta es otra prueba.. haber si funciona...



nos vemos

marial 16-05-2004 16:18:36

Gracias por la ayuda
 
Después de probar vuestros consejos he decidido hacer mi programa de la siguiente manera: he creado una vista con todo lo que necesitaba, y lo que pretengo es trabajar solo con esa vista. Que se me visualice entera en un DBGrid, y que algunas de las columnas las pueda buscar mediante DBlookupComboBox.

Tengo los siguientes componentes:
SQLConnection1
SQLQuery1 : "SELECT * FROM VISTA9"
DataSetProvider1 : haciendo referencia al sqlquery1
ClientDataSet1: haciendo referencia al provider1
DataSource1: haciendo referencia al ClientDataSet1

DBGrid1: que me visualiza la vista completa.
DBLookupComboBox1: que me visualiza el primer campo (PROVINCIA)
DBLookupComboBox2: que me visualiza el segundo campo (EMPRESA)
DBLookupComboBox3: que me visualiza el tercer campo (DEPARTAMENTO)
ETC

El problema que tengo ahora, es que si en la propiedad LisSource de los DBLookupComboBox pongo el DataSource1, me repite los campos tantas veces como se repiten en el DBGrid.

Alguien me puede dar algún consejo? Creo que esta es una buena opción de hacer la aplicación, no?

Muchas gracias.


La franja horaria es GMT +2. Ahora son las 01:50:27.

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