Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-01-2005
bustio bustio is offline
Miembro
 
Registrado: oct 2003
Posts: 231
Poder: 21
bustio Va por buen camino
Como recorrer un TField?

Hola comunidad:

Tengo un gran problema. Sucede que tengo una tabla en MySQL y la estoy trabajando desde Delphi 7 con el componente Zeos. MI tabla tiene 4 campos(Nombre, Password, Rol, Fecha_Creado). Quiero crear con un TreeView la estructura de mi tabla. Es decir, que mi primer nodo en el TreeView sea NOMBRE, y como subnodos tenga las entradas que estan en la BD.
Ahora bien..... Yo tengo una Query que su cuerpo es este:

Select Nombre From Usuarios.

Esta query esta conectada a un dataset, donde si conecto este dataset a algun control de DB me devolveria justo los nombres de todas las personas que esten en mi BD. Ahora veamos esto:

Var
CampoNombre : TField
begin
..........
CampoNombre := MiDataSet.DataSet.FieldByName('Nombre');
..........
end;

Supongo que con este segmento de codigo tenga dentro de CampoNombre los Nombres que seleccione con la consulta. Si es asi, pues ahora debo recorrer este CampoNombre para ir tomando cada uno de sus valores para luego insertarselos como Subnodos en el TreeView. Lo unico es que no tengo idea de como hacer esto... de como ir tomando cada uno de los valores del CampoNombre para ponerselo al TreeView.

Agradeceria cualquier ayuda o sugerencia.....

Muchas Gracias!!!!
Responder Con Cita
  #2  
Antiguo 07-01-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
Propiamente lo que recorres no es el TField sino el DataSet. Conforme recorres el DataSet CampoNombre tendrá el valor del campo para el registro actual.

Para recorrer el DataSet puede hacer un ciclo:

Código Delphi [-]
DataSet.First; // ir al primer registro
while not DataSet.Eof do // mientras no se alcance el final del dataset
begin
  {
    Aquí manipulas con FieldByName los valores del registro actual
  }

  DataSet.Next; // ir al siguiente registro
end;

// Saludos
Responder Con Cita
  #3  
Antiguo 07-01-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Sólo como mejora, a lo ya comentado, creo que si vas a recorrer toda la tabla accediendo siempre al mismo campo, en lugar de acceder en cada paso del bucle utilizando:

Código Delphi [-]
   DataSet.FieldByName('Nombre');

te saldría más a cuenta obtener al índice del campo antes de entrar en el bucle (DataSet.Fields.IndexOf o Field.FieldNo) y luego acceder por el índice con:

Código Delphi [-]
   DataSet.Fields[Index]
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 07-01-2005
bustio bustio is offline
Miembro
 
Registrado: oct 2003
Posts: 231
Poder: 21
bustio Va por buen camino
Gracias!!!

Lo que me han sugerido funciona a las mil maravillas!!!

No se que seria de mi sin este maravilloso foro!!!!
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 16:56: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