[Lazarus-es] Como posicionar un dataset en el primer registro

Ismael L. Donis Garcia slibre en natio.co.cu
Mie Abr 19 14:10:47 CEST 2017


No entendiste a Jesús el dijo exactamente lo que tu corroboraste. Ni más ni 
menos, así SI es cierto para todos los casos.

Gracias Jesús te entendí perfecto. El que no entendió bien fue Rafael.

Yo lo que utilizaba era:
if not (ds.BOF or ds.EOF) then
Por costumbre en los lenguajes de Microsoft y ahora tengo que cambiar dicha 
línea por:

if not ds.IsEmpty then

Saludos Cordiales a tod en s
========
| ISMAEL |
========
WebSite: http://sisconge.byethost15.com/

----- Original Message ----- 
From: "Rafael Bidegain via Lazarus-es" <lazarus-es en lists.lazarus-ide.org>
To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus-ide.org>
Cc: "Rafael Bidegain" <r.bidegain en gmail.com>
Sent: Tuesday, April 18, 2017 10:33 PM
Subject: Re: [Lazarus-es] Como posicionar un dataset en el primer registro


> 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!
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus-ide.org
> http://lists.lazarus-ide.org/listinfo/lazarus-es
> 




Más información sobre la lista de distribución Lazarus-es