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-06-2005
efs efs is offline
Registrado
 
Registrado: jul 2004
Posts: 4
Poder: 0
efs Va por buen camino
Relaciones entre tablas mediante combobox

Que tal, agradezco desde ya su ayuda con este tema ya que no tengo mucha idea de como manejarlo.

Mi problema no es para un caso en particular sino que estoy iniciando un programa y no se como manejar las relacionas entre las tablas.
Estoy trabajando con delphi 7 y firebird, y el caso es que tengo varias tablas, todas con un campo nombretabla_id autoincremental mediante generadores (primary key), y para las tablas relacionadas a esta una referencia al campo id de la tabla a la cual estan relacionadas (nombretablarelacionada_id).
El problema general es que yo quiero mostrar en una pantalla A (que tiene los campos de su correspondiente tabla para edicion mediante IBDataset) un combobox con los datos de un determinado campo de una tabla relacionada a esta, que me muestre todos los datos de ese campo de esa tabla y que yo al seleccionar uno y poner aceptar me guarde la relacion (es decir el id de la tabla relacionada en la que yo estoy usando) y bueno, al editarlo y cambiarlo me lo cambie.

No tengo mucha idea de como manejarlo asi que cualquier tipo de ayuda se las agradezco y logicamente si piensan que lo mejor seria hacerlo de otra forma tambien les agradezco tambien la informacion.
Un saludo.
Responder Con Cita
  #2  
Antiguo 17-06-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
Supongamos que tienes una tabla de personas y una de paises

personas = (id, nombre, pais_id)
paises = (id, nombre)

Muestras la tabla personas en un DBGrid y quieres mostrar en un combo la lista de (nombres de) países de manera que al seleccionar uno, se actualice el campo pais_id.

¿Es así?

A veces es mejor no ser tan abstracto y poner un ejemplo concreto para fijar ideas.

Como no trabajo con FireBird, desconozco cuál pueda ser la mejor opción. Pero puedes revisar este mensaje en el que explico cómo agregar un campo "lookup" de manera que el combo te aparezca dentro del dbgrid.

Otra forma sería usar un DBLookupComboBox ajustando sus propiedades:

DataSource <-- IBDataSetPersonas
DataField <-- pais_id
ListSource <-- IBDataSetPaises
ListField <-- nombre
KeyField <-- id

En este caso el combo estaría fuera del dbgrid.

// Saludos
Responder Con Cita
  #3  
Antiguo 17-06-2005
efs efs is offline
Registrado
 
Registrado: jul 2004
Posts: 4
Poder: 0
efs Va por buen camino
Muchas gracias roman, disculpa por no especificar mas el problema pero entendiste perfecto, era justamente eso lo que necesitaba (el segundo caso, el combo fuera del dbrid).
Nuevamente muchas gracias y 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


La franja horaria es GMT +2. Ahora son las 00:11:50.


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