[Lazarus-es] Como posicionar un dataset en el primer registro
Rafael Bidegain
r.bidegain en gmail.com
Mie Abr 19 04:33:43 CEST 2017
Me llamó la atención lo que afirma Jesús en el primer párrafo y decidí
hacer unas pruebas.
sigo abajo
El día 18 de abril de 2017, 18:57, Jesus R. via Lazarus-es
<lazarus-es en lists.lazarus-ide.org> escribió:
> Efectivamente, no siempre cuando el BOF=true significa que estas posicionado
> en el primer registro, pero esto solo es cierto cuando el dataset esta
> vacio. En todos los otros casos si BOF=true, entonces también estas
> posicionado en el primer registro. Igualmente, si EOF=true significa o que
> estas posicionado en el último registro o el dataset esta vacio. De esto se
> puede concluir que is BOF=true y EOF=true entonces el dataset esta vacio.
> Pero esto es mejor comprobarlo con dataset.IsEmpty.
hay un caso en donde esto no es cierto.
cree un archivo dbf y agregué un registro
puse dos botones con este código
procedure TForm1.Button1Click(Sender: TObject);
begin
dbf1.First;
if dbf1.BOF then
showmessage('begin of file');
if dbf1.EOF then
showmessage('end of file');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
dbf1.last;
if dbf1.BOF then
showmessage('begin of file');
if dbf1.EOF then
showmessage('end of file');
end;
button1 muestra unicamente "begin of file"
button 2 muestra unicamente "end of file"
Según mi prueba lo que hace que:
BOF sea true es la llamada a first()
EOF sea true es la llamada a last()
saludos
--
Rafael Bidegain
Ya que los cuerdos no hablan, hablará el loco.
(The Fool, Padraic Pearse)
# yo quiero educación libre. ¡YA!
Más información sobre la lista de distribución Lazarus-es