Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-10-2007
Mannu Mannu is offline
Miembro
 
Registrado: sep 2007
Posts: 27
Poder: 0
Mannu Va por buen camino
TTREEVIEW y Bases de datos

Hola,
estoy intentando conectar a una base de datos y mostrar los datos en un TreeView.

tengo dos tablas

Tabla A y tabla B que depende de tabla A


TABLA A
---------
id | Nombre

y TABLA B
----------
id | id_tabla_a | nombre


en ambos casos el campo "id" es autoincremento y el id_tabla_a es igual al "id" de la tabla A para relacionar.

Ahora bien, se como mostrar los datos de la tabla A en el TREEEVIEW y de la tabla B pero como puedo hacer si tnego otra TABLA C con datos del miembro de la TABLA B y quiero mostrar dichos datos con lo que tengo en el TREEVIEW ?

Me explico?


yo veria:

datos TABLA A
|
|-----> Datos Tabla B
|
|------> Si pico en uno campo de TABLA B me muestra datos Extendidos ( tabla C)

Mi duda es, como se que campo mostrar si pico en uno de los nodos de TABLA B, puesto que solo me muestra un nombre :S y el ID de ese Nodo no coincide con el de la Base de datos.

quizas es posible asignar un ID y nombre a un nodo ? para saber a que campo pertenece?
Responder Con Cita
  #2  
Antiguo 25-10-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 683
Poder: 11
Gabo Va por buen camino
Hola,

espero no te moleste, pero no me parece muy bueno el diseño que haces de las tablas. Es que, por cada nivel de tu treeview estás pensando generar una nueva tabla, cuando en realidad toda la información necesaria para realizar una jerarquía se puede poner en una sola. Para ello basta con indicar quien es el "registro padre" de cada registro. Lamento no tener ningún ejemplo a mano (y los que tengo están echos en VB.NET).

De todas formas me acordé que en algunos hilos se había comentado sobre un componente gratuito, el Virtual TreeView, que hacía más comodo el uso de jerarquías de este tipo.

Aquí tienes algunos enlaces:

http://www.clubdelphi.com/foros/show...eeview+grat%2A

http://www.clubdelphi.com/foros/show...nente+treeview

http://www.clubdelphi.com/foros/show...eeview+grat%2A

http://www.clubdelphi.com/foros/show...eeview+grat%2A
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.
Responder Con Cita
  #3  
Antiguo 27-10-2007
Mannu Mannu is offline
Miembro
 
Registrado: sep 2007
Posts: 27
Poder: 0
Mannu Va por buen camino
nooo todo lo contrario se agradece cualquier apuntillo o critica

esque pensaba en separarlo para luego consultar ... solo "miembros" por ejemplo ... auque tal como me dices.......podria hacer ramificaciones (nodos) infinitos supongo :S!

saludos, voy a echarle un vistazo a los links

PD: a un nodo le puedo poner un ID en borland? ya que hacer una busqueda en una BD con el dato del campo ... no me agrada, y más si tiene acentos :S
Responder Con Cita
  #4  
Antiguo 29-10-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 683
Poder: 11
Gabo Va por buen camino
Cita:
Empezado por Mannu Ver Mensaje
PD: a un nodo le puedo poner un ID en borland? ya que hacer una busqueda en una BD con el dato del campo ... no me agrada, y más si tiene acentos :S
¿Te refieres a asociar el codigo identificador del registro al nodo? No estoy muy seguro. En VB lo que hacía era utilizar el Tag del nodo pero creo que esa propiedad no está disponible en los nodos del TreeView en C++Builder. De todas maneras puedes buscarla por si acaso. Otra opción es utilizar un contenedor, busca "map" en la ayuda.
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.
Responder Con Cita
  #5  
Antiguo 29-10-2007
Mannu Mannu is offline
Miembro
 
Registrado: sep 2007
Posts: 27
Poder: 0
Mannu Va por buen camino
ya pense en almacenar los ID de mis tablas y los de los nodos en matrices, pero me resultaba algo "bestia" mmm igual lo pruebo con los map

de todos modos mas de 200 datos no voy a tener, lo que intento es desarrollar una "agenda" con un arbol principal:

Arbol:

Promotores
Alumnos
Usuarios

y una o dos ramas como mucho por rama principal.

Saludos y gracias por las ideas!
Responder Con Cita
  #6  
Antiguo 02-11-2007
Mannu Mannu is offline
Miembro
 
Registrado: sep 2007
Posts: 27
Poder: 0
Mannu Va por buen camino
Esto seria una idea muy loca para poder identificar un Nodo con un ID de una tabla?


Código Delphi [-]
typedef struct MyRec
{
  AnsiString FName;

} TMyRec;

typedef TMyRec* PMyRec;

void __fastcall TForm1::Button1Click(TObject *Sender)
{

PMyRec  MyRecPtr;

TTreeNodes* pItems;
 pItems = TreeView1->Items;

 MyRecPtr = new TMyRec;

 //Edit1 funcionaria como ID de la tabla
 MyRecPtr->FName = Edit1->Text;

  pItems->AddObject(0, "Item" , MyRecPtr);
}

y para saber el ID de un nodo en una tabla (obtenerlo)
Código Delphi [-]
ShowMessage(PMyRec(TreeView1->Selected->Data)->FName);
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Pasaje de datos entre bases de datos Mauro Daniel Conexión con bases de datos 1 04-05-2008 16:28:24
bases de datos en red algibe Conexión con bases de datos 1 15-03-2007 20:40:01
Como pasar datos de una hoja de Excel a Bases de Datos de Paradox Goyo OOP 1 06-02-2007 02:57:20
Bases de Datos .TRN CARSOFT_AR Varios 3 09-12-2005 16:35:41
Dos Bases de Datos ELINK SQL 1 13-05-2005 08:12:00


La franja horaria es GMT +2. Ahora son las 18:13:34.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi