PDA

Ver la Versión Completa : Cuando Usar FieldByname


IcebergDelphi
08-06-2007, 02:08:39
Hola amigos llevo 5 años programando en Delphi y Firebird pero de un momento a otro me surgio una duda cuando debemos usar Fielbyname?

Yo lo uso , pero no se si esto da mas velocidad al cargar un modulo de datos con varias tablas y no usar el Fieldseditor que trae cada tabla, para cargar los campos al mismo.

Si Ponemos ellos campos en el Fieldseditor es mas pesada la abertura de una tabla en tiempo de ejecucion?

Si usamos FieldByName es mas rapida la abertura de una Tabla en tiempo de ejecucion?


Saludos y gracias.

luisgutierrezb
08-06-2007, 03:06:55
segun recuerdo, no estoy seguro, que los campos persistentes, se crean ya sea en tiempo de diseño con el fieldseditor o en tiempo de ejecucion al ejecutar una consulta dinamica, y como de todos modos se crean, pues no creo que haya diferencia entre hacerlo en tiempo de diseño o en ejecucion que se hgan automaticos

xander
08-06-2007, 03:16:25
FieldByName, es un metodo que debe devolver un puntero a un objeto que administra un determinado campo, a partir solo del nombre de ese campo... así que el metodo debe buscar uno a uno dentro de los campos del dataset si alguno se llama como el que buscamos, lo peor que puede pasar es que el que buscamos sea el último de un dataset de muchos campos y se hayan hecho muchas comparaciones para poder encontrarlo.

Si ya conoces el puntero al campo, es decir que usas campos persistentes pues usalo directamente... definitivamente algo ganas al usar:

TablaCampo.AsString

sobre:

Tabla.FieldByName('Campo').AsString

Casimiro Notevi
08-06-2007, 09:34:35
Muy bien explicado, xander. No es necesario 'buscar' si tenemos el puntero a lo que 'buscamos'.

IcebergDelphi
08-06-2007, 16:44:40
Gracias amigos de todas formas uso el FieldByanem

Tabla.FieldByname('NombreCampo').as lo que sea

Pero seguire probando cual me da mas velocidad al abrir o consultar algo.

Saludos y gracias si quieren seguir opinando adelante. es bueno saber sismpre mas dia a dia.