Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 14-05-2007
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
Muy sencillo. En cada tabla (o más genéricamente, en cada dataset), se tiene el concepto de registro activo. Son los datos de ese registro activo a los que puedes acceder, y lo haces de varias formas:

La más sencilla, es como si el reegistro activo fuera un arreglo:

Código:
Table1['nombre'], Table1['apellidos'], Table1['edad']
donde los índices del arreglo son los nombres de los campos. Este método tiene la desventaja de que los datos se tratan con el tipo de datos genérico variant, que no es óptimo y podría impactar en el rendimiento.

Otra manera es usando el método FieldByName:

Código:
Table1.FieldByName('nombre'), Table1.FieldByName('apellidos'), Table1.FieldByName('edad')
FieldByName regresa un objeto de tipo TField, lo que quiere decir que no te está dando directamente el valor del campo. Para ello, debes usar una de las propiedades de TField, tal como AsString, AsInteger, AsBoolean, etc, según el tipo de datos que tenga el campo en la base de datos:

Código:
Table1.FieldByName('nombre').AsString, Table1.FieldByName('apellidos').AsString, Table1.FieldByName('edad').AsInteger
Aunque hace un poco más larga la escritura, tiene la conveniencia de que te devuelve el tipo de datos preciso y no generico.

Esos datos los usas como cualquier otra variable, de manera que puedes copiarlos directamente a variables del tipo adecuado, por ejemplo:

Código Delphi [-]
{ Copiamos el valor del campo 'nombre' en el cuadro de edición Edit1 }
Edit1.Text := Table1.FieldByName('nombre').AsString;

o bien:

Código Delphi [-]
var
  E: Integer;

begin
  E := Table1.FieldByName('edad').AsInteger;
end;

Ahora, realmente sólo puedes acceder a un registro a la vez, el mencionado registro activo. Para acceder a los datos de otro registro, debes primero moverte a ese registro. Hay varias maneras de hacer esto. or un lado cuentas con métodos como Table1.First, Table1.Next que te colocan en el primer registro a avanzan al siguiente. Son útiles para el recorrido secuencial de todos los registros. Pero cuents también con métodos como Table1.Locate para localizar un registro con un criterio dado.

En fin, espero que esto te aclare un poco.

// Saludos
Responder Con Cita
 


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 15:28:24
Como pasar datos de una hoja de Excel a Bases de Datos de Paradox Goyo OOP 1 06-02-2007 01:57:20
Manejo de datos con DBGrids luxus Conexión con bases de datos 5 29-07-2006 06:47:03
manejo de la base de datos con sql altatrejo Conexión con bases de datos 0 22-08-2005 18:52:04
Manejo de esquemas en lugar de muchas bases Lore Castillo Oracle 1 24-05-2005 01:19:00


La franja horaria es GMT +2. Ahora son las 13:38:43.


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
Copyright 1996-2007 Club Delphi