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 28-05-2006
joanajj joanajj is offline
Miembro
 
Registrado: jul 2003
Posts: 144
Poder: 21
joanajj Va por buen camino
Maestro-Detalle

Buenas a todos, sabe alguien un enlace donde pueda ver como se hace de forma detallada un enlace maestro-detalle(tipo cabecera-cuerpo fra.) ya que tengo algo de información suelta(eso de crear clave foranea, un indice unique, etc.) pero no consigo que funcione correctamente.

Uso Firebird, FBIPLUS(Trial) y Delphi 7

he creado 2 tablas:

1ª) CABECERA con clave primaria (NUMERO) e indice (NUMERO UNIQUE)

2ª) CUERPO
-con clave primaria(CLAVE2) e indice (AUTOINCREM)
-clave foranea (NUMERO) APUNTANDO A (NUMERO DE 1ª TABLA) e indice (NUMERO)

el código puesto es SELECTSQL de 2ª) tabla es:
Código SQL [-]
SELECT
    C.NUMERO,
    C.CLIENTE,
    C.FECHA,
(SELECT COUNT(*) FROM cuerpo WHERE numero = C.numero) QUANTITY_ORDERS
FROM
    CABECERA C
where numero= C.NUMERO

donde cabecera es la tabla 1ª)

y en REFRESHSQL :

Código SQL [-]
SELECT
C.NUMERO,
    C.CLIENTE,
    C.FECHA,
(SELECT COUNT(*) FROM cuerpo WHERE numero = C.numero) QUANTITY_ORDERS
FROM
    CABECERA C
WHERE
C.NUMERO = :OLD_NUMERO

ORDER BU C.CLIENTE

y no consigo que al posicionarme en una linea de cabecera se muestren en cuerpo las lineas cuyo numero coincidan con el número de cabecera.

Si me podéis ayudar bien, si no, por lo menos un enlace...

Gracias a todos...
Responder Con Cita
  #2  
Antiguo 28-05-2006
celades1 celades1 is offline
Miembro
 
Registrado: ago 2005
Posts: 116
Poder: 19
celades1 Va por buen camino
Hola

Lo que veo mal

es el ORDER BU C.CLIENTE del refreshql

En maestro detalle el dataset segundo debe tener el datasource del maestro
Pero no entiendo lo que quieres ya que si lo que quieres es mostrar abajo
los datos de la tabla cuerpo deberias hacer



quedaria asi selectsql

Código SQL [-]
SELECT * from cuerpo where numero=:numero

refreshsql

Código SQL [-]
SELECT * from cuerpo where clave2=:clave2

si lo que pretendes es mostrar datos de la cabecera y el numero de linias del cuerpo


Código SQL [-]
SELECT * C.NUMERO, C.CLIENTE, C.FECHA,(SELECT COUNT(*) FROM cuerpo WHERE numero = C.numero) QUANTITY_ORDERSFROM CABECERA Cwhere c.numero= :NUMERO

donde :numero apunraria al pK del dataset maesto

y refreshsql

Código SQL [-]
 
SELECT
C.NUMERO,
C.CLIENTE,
C.FECHA,
(SELECT COUNT(*) FROM cuerpo WHERE numero = C.numero) QUANTITY_ORDERS
FROM
CABECERA C
WHERE
C.NUMERO = :OLD_NUMERO


Pero creo que no entiendo lo que quieres

Saludos
Responder Con Cita
  #3  
Antiguo 28-05-2006
joanajj joanajj is offline
Miembro
 
Registrado: jul 2003
Posts: 144
Poder: 21
joanajj Va por buen camino
si eso es lo que busco pero no funciona

Gracias por responder.

Eso es exactamente lo que busca y es que al seleccionar una linea en cabecera(como puede ser una fra.) en cuerpo se vean solo loas lineas que corresponden a la selección:

Ej.

CABECERA
fra. 200 24/02/2000 Francisco Perez
esta es por ej. la selección
fra. 201 24/02/2000 Juan Carlos

CUERPO

fra. 200 2 zapatos
fra. 200 5 calcetines
fra. 200 9 pantalones

lo del bu order si era by order

y tú código se parece al mío excepto a clausula WHERE que cambias c.numero=:numero, y de momento no funciona.


Un saludo...
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
Problema tabla Maestro-detalle en la q la pk de t.detalle formad por 2cods de la maes akinom38 Varios 1 09-11-2007 19:27:44
Maestro Detalle edgusano .NET 2 22-08-2005 21:24:16
Reporte Maestro/Detalle/Detalle de 4 Tablas jovehe Impresión 2 23-03-2005 01:25:02
Maestro-Detalle ;Actualizar detalle a partir de un DBgrid norberto_larios Conexión con bases de datos 1 11-09-2004 18:17:34
Maestro/Detalle StartKill Firebird e Interbase 5 31-03-2004 01:52:31


La franja horaria es GMT +2. Ahora son las 10:09:47.


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