Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Como recorrer un TField? (https://www.clubdelphi.com/foros/showthread.php?t=17400)

bustio 07-01-2005 05:04:44

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!!!!

roman 07-01-2005 06:04:17

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

Neftali [Germán.Estévez] 07-01-2005 09:28:54

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]

bustio 07-01-2005 19:36:40

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

No se que seria de mi sin este maravilloso foro!!!!


La franja horaria es GMT +2. Ahora son las 06:58:09.

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