Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-12-2010
Chandra_ Chandra_ is offline
Miembro
 
Registrado: may 2008
Posts: 50
Poder: 16
Chandra_ Va por buen camino
Algo más que "maestro/detalle": 3 tablas

Hola

Tengo una parte de un programa en el que se trabaja con un grupo de personas que pueden pertenecer o no a uno o varios equipos. Lo he resuelto con 3 tablas:

- En la tabla Equipos tengo el nombre del equipo y una referencia única o ID (una clave primaria, vamos).
- La segunda tabla, la del personal, contiene igualmente el nombre de la persona y una referencia única (otra clave primaria).
- En la tercera tabla se establece la relación Equipo/personas que lo componen. Es decir, en cada registro se guarda el ID de la persona y el ID del equipo (aparte de una clave primaria que aquí no viene al caso). Buscar los miembros de un equipo es fácil: con un SELECT se buscan todos los registros que tengan el mismo número de referencia de Equipo.

Hasta ahí todo bien. El problema es que me gustaría que al desplazarme por el grid que apunta a la tabla de nombres de equipo en otro grid se mostraran todos sus componentes.

Lo hago sin problemas con un Button, por ejemplo: en el evento OnClick le meto una llamada al query que hace el SELECT y listo. Lo malo es que Delphi no me deja meter esta llamada al query en ningún evento del grid de los equipos, porque se queja de que la tabla de personal está aún cerrada (he probado en casi todos los eventos imaginables del grid y en los del dataset... pero no quiere).

¿Alguna idea? ¿Lo hago de otra forma?

Había pensado en el típico ejemplo de "los clientes y los pedidos" en dos tablas, pero no es aplicable a este caso, porque aquí sería como si cada pedido pudiera estar hecho por más de un cliente; es decir, que no puedo meter en la tabla del cliente (en mi caso, del personal) referencias a un número indeterminado pedidos (en mi caso, a varios Equipos). Bueno... sí podría hacerlo con un array en un campo o algo así, supongo, pero no quiero complicar tanto la lógica del programa.

Gracias de antemano
Responder Con Cita
  #2  
Antiguo 21-12-2010
Chandra_ Chandra_ is offline
Miembro
 
Registrado: may 2008
Posts: 50
Poder: 16
Chandra_ Va por buen camino
Me respondo a mi mismo:

Perdón, He cometido un error imperdonable: había olvidado quitar la llamada al query en uno de los eventos del dataset y por eso no me funcionaba: lanzaba sin darme cuante el query antes de tiempo

Yo probaba y probaba en todos los eventos y, claro!, siempre me daba NECESARIAMENTE error. Pero qué burro que soy...

Claro... ahora sí que funciona: le pongo la llamada al query con el SELECT en el ebento OnCellClick y va como la seda (bueno... todo lo "como la seda" que puede ir un query cada dos por tres).

Ya me extrañaba a mi. Si es que hay que levantarse del sillón de vez en cuando para despejarse, que si no se le pone a uno el cerebro como una empanada

Gracias y perdón si alguien se ha leído el ladrillo
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
Algo similar a "FindComponent" en visual basic 6 Hugorr .NET 1 03-08-2007 14:44:35
Algo similar a "FindComponent" en la plataforma .NET Hugorr .NET 1 02-08-2007 23:00:48
Necesito llamar a métodos de clases "hija" desde su clase "padre" Flecha OOP 17 20-04-2007 00:03:53
"Master record missing" en Maestro detalle Gelmin C++ Builder 1 26-03-2004 00:40:38


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


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