miércoles, 5 de noviembre de 2008

Freemem de BookMark

S'ha de tenir en compte que quan es treballa amb un TADOQuery i es vol fer servir un bookmark, si fem servir el mètode getBookMark s'ha d'alliberar la memòria. Això es degut a que getBookMark reserva un espai de memòria per guardar el punter.

function TDataSet.GetBookmark: TBookmark;
begin
if BookmarkAvailable then
begin
GetMem(Result, FBookmarkSize);
GetBookmarkData(ActiveBuffer, Result);
end else
Result := nil;
end;

Per tant s'hauria d'alliberar la memòria en aquests casos. Per a fer-ho tenim el mètode FreeBookMark(Bookmark: TBookmark). Que allibera el punter bookmark.

Codi d'exemple:

// Guardem on tenim situat el cursor actualment en el QDiari
QDiariBookmark := QDiari.GetBookmark;
try
..... Aquí podem afegir qualsevol codi
finally
QDiari.FreeBookmark(QDiariBookmark);
end;