Ver Mensaje Individual
  #6  
Antiguo 19-10-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
En principio yo lo veo de otra forma:
Código Delphi [-]
if qrPan.BookmarkValid(marca) then // aqui no sé por qué va, supongo que hay
// codigo antes y por eso lo tienes.
         qrPan.FreeBookmark(marca);
      
      marca := qrPan.GetBookMark;
      while not qrPan.eof do
         begin
            {...}
            qrPan.next;
          end;
if qrPan.BookmarkValid(marca) then
begin
      qrPan.GoBookmark(marca);
      qrPan.FreeBookmark(marca);
end;
      marca := nil;

Es decir, lo normal es obtener la marca, mover el dataset y por último, preguntar si el BookMark es válido:
- si lo es, voy a ese Bookmark y despues lo libero
- si no lo es, es que ha habido algún problema, no sé si es conveniente llamar a FreeBookmark, puesto que en este caso, no es un puntero de marca Válido.

Por otra parte habría que mirar la implementación o ayuda sobre este tema en MySql.

Ten en cuenta que si cierras la consulta y despues la vuelves a abrir, los punteros no serán válidos, quizás sea convienente guardar la clave primaria de ese registro y usar un Locate, en lugar de usar un Bookmark.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita