FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
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? |
#2
|
||||
|
||||
Una respuesta.
End Of File...
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO |
#3
|
||||
|
||||
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?
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#4
|
||||
|
||||
Cita:
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#5
|
||||
|
||||
Creo que no has entendido el funcionamiento de Eof. Si revisas la ayuda:
Cita:
|
#6
|
|||
|
|||
yo creo que es por el
Código:
Tabla.Next; |
#7
|
||||
|
||||
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?
__________________
|
#8
|
||||
|
||||
Cita:
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#9
|
||||
|
||||
Muchísimas gracias a todos. Ya lo entiendo.
Cita:
Cita:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Necesito llamar a métodos de clases "hija" desde su clase "padre" | Flecha | OOP | 17 | 20-04-2007 00:03:53 |
Cambiar por código la opción "uso compartido de carpetas" en opciones de carpeta | JuanErasmo | API de Windows | 1 | 09-11-2006 15:47:08 |
Investigadores quieren llevar el "código libre" a la ciencia | Sasuke_Cub | Noticias | 0 | 02-09-2005 00:20:33 |
no es de humor , pero .. "Mujer asesina a su novio con un iPod" | gmontes | Humor | 0 | 08-06-2005 15:52:10 |
Leer BBDD de Access en Delphi, pero "ampliamente" | Pandre | Conexión con bases de datos | 2 | 23-01-2004 13:36:56 |
|