RE:.AsString & FieldByName
En la ayuda no dice exactamente que FindField sea mejor que FieldByName, sino que simplemente explica las diferencias entre uno y otro, y la decisión respecto de cual es mejor para una circumstancia determinada queda a criterio del programador.
FindField y FieldByName buscan un campo en la lista de campos por su nombre (cadena que se pasa como parámetro), y la diferencia es que cuando un campo no se encuentra, el primero devuelve NIL mientras que el segundo lanza una excepción. El segundo se implementa como una llamada al primero, más una comprobación del valor de retorno.
¿Qué es mejor? ¿Recibir el NIL o lanzar la excepción? Si estamos completamente seguros que el campo existe, lo mejor es usar FindField, pues nos ahorarramos unos clocks de CPU, que por lo general suelen no ser tan relevantes, así que para principiantes que pueden equivocarse, siempre en mis ejemplos uso FieldByName en vez de FindField, pues es más "bonita" una excepción que una AV cuando meten la pata al escribir el nombre del campo, además que la primera tiene mensaje en español si han instalado los respectivos recursos de Delphi...
Ernesto De Spirito
http://www.latiumsoftware.com/es/index.php