Ver Mensaje Individual
  #6  
Antiguo 11-06-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 25
Delphius Va camino a la fama
Hola aleja,
Si tu duda pasa por la diferencia entre acceder en forma directa y la indirecta pues hay que ver el código fuente de ZTable.

Yo no uso Zeos, pero intuyo que el comportamiento es análogo a cualquier otro.

No existe demasiada diferencia entre uno y otro, pero si las particularidades de como llevar la programación pueden conducirte a optar un método por sobre el otro.

Cuando uno invoca al campo en forma directa, con el índice. Lo que hace es leer indistintamente el concepto al que representa. Se lee el campo que ocupa dicha posición. Es decir que no interesa si se llama IDCliente, o Descripción. Si el indice corresponde a una posición válida haces referencia al campo que ocupa dicha posición.

Con el segundo método, lo que hacemos es buscar al campo según su nombre, o el concepto al que representa. Esto es útil cuando estamos tratando con los campos en forma independientemente del lugar que ocupa el campo. Es así que si optamos por buscar el campo según el nombre no nos interesa saber si se trata del tercero, el segundo, el centésimo...

Internamente, el uso del segundo método hace uso del primero. Puesto que al suministrar el valor, debe chechear contra el arrays de campos para encontrar dicha referencia. A ver... no sono bien... El segundo método necesariamente debe chequear con todos los campos hasta encontrar el que se desea.

¿Cual es la ventaja de uno sobre el otro? Pues, el primero es directo. El segundo es más "lento" ya que debe buscarlo.

¿Cuando conviene usar uno y cuando el otro?
Y pues... depende. Pero unos buenos motivos para usar el segundo pueden ser:
1. Cuando la estructura de la base de datos es muy volátil. Es decir, existe el riesgo de que los campos cambien de lugar, que desaparezcan algunos... en fin... cuando no podemos garantizar de que en la posición estará disponible el campo que realmente necesitamos.
2. En ocaiones, el implementar un índice no nos ayuda a la comprensión del código (y del problema mismo). En ocasiones el ver un 1, u 50, o 100 nos lleva a preguntarnos ¿De donde sale ese número? ¿qué representa? En pocas, puede reducir la capacidad de comprensión, adaptación, y mantenimiento del código.

De igual manera podemos formular puntos a favor del primero por sobre el segundo:
1. El acceso es directo, nada de ciclos, nos vamos al grano.
2. Podremos afirmar con total certeza de que el campo al que hago alusión corresponde al campo IDCliente (por ejemplo). Se que nunca va a sufrir cambios la base de datos.

Espero que quede más claro.

Sino se entiende, avisa.
Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita