<div dir="ltr">Para posicionarlo en el primer registro es con dataset.first; para posicionarlo en el último: dataset.last;<div><br><div>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.</div><div><br></div><div>Ahora bien, cuando estas navegando por el dataset usando dataset.next y dataset.prior en realidad no se sabe si estas en BOF o EOF sino hasta que lo has intentado, esto es: si estas en el segundo registro y haces dataset.prior, llegaras al primer registro sin embar BOF será false por que el dataset aun no sabe que no hay mas registros previos. Lo mismo sucede con dataset.next y EOF. El caso de dataset.first y dataset.last es un poco diferente, por que ademas de posicionarte en el primer y último registro respectivamente el dataset ya sabe que no hay mas registros previos ni siguientes también respectivamente por eso cuando usas dataset.first BOF=true y con dataset.last EOF=true.</div><div><br></div><div>Espero no haberte confundido mas :)</div><div><br></div><div>Saludos.</div><div><br></div><div>Jesus Reyes A.<br><div><div><br></div></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">El 18 de abril de 2017, 14:21, Ismael L. Donis Garcia via Lazarus-es <span dir="ltr"><<a href="mailto:lazarus-es@lists.lazarus-ide.org" target="_blank">lazarus-es@lists.lazarus-ide.org</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u>





<div bgcolor="#ffffff">
<div><font face="Arial" size="2">Estoy presentando un problema, y es que no 
encuentro como posicionar un dataset en el primer y último 
registro.</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">tengo por ejemplo a:</font></div>
<div><font face="Arial" size="2">procedure Tfcvta.FormShow(Sender: 
TObject);<br>begin<br>  while not dma.rsmr1.EOF do 
begin<br>    ds.Append;<br>    
ds.FieldByName('cod').AsString := 
dma.rsmr1.FieldByName('cod').<wbr>AsString;<br>  ds.FieldByName('descod').<wbr>AsString 
:= 
dma.rsmr1.FieldByName('descod'<wbr>).AsString;<br>  ds.UpdateRecord;<br>  ds.Post;<br>    
dma.rsmr1.Next;<br>  end;<br>  if (ds.RecordCount > 0) then 
begin<br>    ds.First;<br>    if ds.BOF 
then<br>      
Application.MessageBox('<wbr>Inicio',pchar(self.Caption),0)<wbr>;<br>  
end;<br>end;</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">Siempre me da el mensaje que está en el inicio del 
dataset y yo quiero que se me posicione en el primer registro. Estoy medio 
perdido con eso, no se si los conceptos en Lazarus son diferentes a los de 
microsoft.</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">Y en caso de ser diferentes como tratarlos ya que 
no podría hacer algo como esto:</font></div>
<div><font face="Arial" size="2">if not (ds.BOF or ds.EOF) then</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">Quisiera ver si es posible que me aclaren un poco 
este concepto en Lazarus ya que yo vengo de programar en lenguajes de microsoft 
y esto me trae medio confundido.</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">Saludos Cordiales</font></div>
<div>========<br>| ISMAEL |<br>========</div></div>
<br>______________________________<wbr>_________________<br>
Lazarus-es mailing list<br>
<a href="mailto:Lazarus-es@lists.lazarus-ide.org">Lazarus-es@lists.lazarus-ide.<wbr>org</a><br>
<a href="http://lists.lazarus-ide.org/listinfo/lazarus-es" rel="noreferrer" target="_blank">http://lists.lazarus-ide.org/<wbr>listinfo/lazarus-es</a><br>
<br></blockquote></div><br></div>