![]() |
Código "erroneo" pero que funciona
Hola a todos.
Tengo una pequeña duda desde hace algún tiempo, que no resulta ningún problema, pero que me extraña demasiado y ya he discutido antes. De todos es conocido el siguiente código:
Sirve (y funciona a la perfección) para recorrer todos los registros de una tabla y hacer con ellos lo que quieras. Pero ahora analicemos a fondo esas líneas. Tabla.First; Hasta aquí bien. Situamos a la tabla en su primer registro. Después comprueba si estamos en el último. Como mi tabla hipotética tiene 100.000 registros, pues va a ser que no, así que analiza el 1º registro y cuando acaba pasa al segundo con Tabla.Next; Bien, vuelve a hacer la comprobación. Seguimos sin estar en el último registro, por lo que analiza el segundo y pasa al tercero, y así sucesivamente hasta el 99.998. Lo analiza y como no es el último pasa al 99.999. Lo analiza y como no es el última pasa al 100.000. Hace la comprobación y... ¡ES EL ÚLTIMO! Por lo que el último registro (con este código) jamás sería analizado. Pero todos los que lo hemos usado saben que funciona a la perfección. ¿Alguien sabe por qué sucede esto? |
Una respuesta.
End Of File... |
Bueno, lo que sucede es que en realidad el ultimo registro para un DataSet no es en tu caso el Numero 100.000, el ultimo registro para un DataSet es un espacio que abre llamado EOF, ¿Haz notado alguna vez que si usas un TNavigator y le haces siguiente hasta el final no se inhabilitan los botones si no hasta que le das un click mas en el ultimo registro?
|
Cita:
|
Creo que no has entendido el funcionamiento de Eof. Si revisas la ayuda:
Cita:
|
yo creo que es por el
Código:
Tabla.Next; |
Yo no entendí que era lo que estaba mal
creo mas bien que fue una leve equivocación al comprender el funcionamiento de dicho procedimiento. Las cosas erroneas, no funcionan. Si funciona, no es erróneo. O lo que es lo mismo: co-echo es un hecho contra echo al que no hay derecho porque que es esho? |
Cita:
|
Muchísimas gracias a todos. Ya lo entiendo.
Cita:
Cita:
|
La franja horaria es GMT +2. Ahora son las 04:35:56. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi