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 17-03-2005
istradlin istradlin is offline
Miembro
 
Registrado: feb 2005
Posts: 58
Poder: 20
istradlin Va por buen camino
Relaciones

Estoy haciendo una aplicacion mas que nada para probar programar en delphi y meterme en el mundillo, pues bien, la aplicacion guarda los datos en una BD interbase.

Tengo tres tablas: CLIENTES, APARATO, FACTURAS.

De esta forma la factura estara asociada a un unico cliente y a un unico aparato.

Estube buscando en foros y tutoriales y lo unico que veo son consultas SQL con clausulas para relacionarlos. El problema es que si yo esa consulta la asocio p.ej. a un DBTable en delphi, me deja consultar los datos pero no insertar, modificar etc.

Algo he leido sobre claves foraneas para hacer en la BD pero no tengo muy claro cual es la sentencia para hacer tal cosa.

Como podeis ver estoy algo perdido, si alguien se aburre podia contestarme.

Gracias y un saludo a todos.
Responder Con Cita
  #2  
Antiguo 18-03-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Tal como lo implementas, Un cliente solo puede comprar un aparato, y nada más.

Lo que necesitas es una relación Maestro-Detalle. busca por los foros, Se ha hablado mucho.

En principio necesitas otra tabla más, y no digo más porque me aburro

Saludos
Responder Con Cita
  #3  
Antiguo 18-03-2005
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 Lepe
Tal como lo implementas, Un cliente solo puede comprar un aparato, y nada más.
No. Me parece que en una factura sólo puede aparecer la compra de un aparato por cliente, que no es lo mismo. Puede haber varias facturas en la tabla relacionadas al mismo cliente. Dicho de otra forma CLIENTE y APARATO tienen una relación muchos a muchos expresada en la tabla facturas:

cliente = (id, nombre, email, telefono)
aparato = (id, marca, modelo, descripcion)

factura = (id, cliente_id, factura_id, fecha)

Creo que a lo que se refiere istradlin es a que tiene una consulta del estilo:

Código SQL [-]
select
  cliente.nombre, aparato.marca, aparato.modelo, factura.fecha
from
  factura, cliente, aparato
where
  factura.cliente_id = cliente.id and
  factura.aparato_id = aparato.id

Esta consulta no es editable por involucrar más de una tabla. En el BDE existe la componente TUpdateSQL para solventar estos casos especificando en sus propiedades InsertSQL, ModifySQL y DeleteSQL las sentencias INSERT, UPDATE y DELETE necesarias para llevar a cabo las modificaciones. También existe la componente similar TIBUpdateSQL para las componentes IB y de hecho casi cualquier juego de componentes para acceder a bases de datos tendrá de una u otra forma esta facilidad.

// Saludos
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


La franja horaria es GMT +2. Ahora son las 03:00:34.


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