El lun, 26-04-2010 a las 22:25 -0300, Maximiliano Duarte escribi�:
Paola, se me hace q eso nunca va a funcionar ya q al cerrar el dataset y volverlo a abrir el conjunto cambio y la marca ya no es vida. Sugiero q hagas las modificaciones directamente sobre el dataset q apunta a la grilla y listo, cuando volves ya tenes el dato nuevo. Sino la otra es guardara clave primaria, cerrar, abrir y hacer locate. Si no entendes ma�ana t paso un ejemplo. Ahora esoty con el telefono
Hola, creo que tu afirmaci�n no es correcta. El bookmark se calcula seg�n la posici�n del registro y si el mismo no ha sido cambiado sigue siendo el mismo. Lo he estado probando y veo que no funciona porque al asignarle de nuevo el bookmark al dataset no hace nada. Esto estaba funcionando, llevo usando ese procedimiento desde hace muchos a�os, cuando tenga un rato revisar� el c�digo del free pascal y del Zeos. Me da que pasa algo con el bookmark, pues hace una conversi�n de string a puntero y algo no va al intentar situarse de nuevo.
Hacer la prueba siguiente y vereis como funciona. Se situa en el antiguo registro.
vBookmark := Query1.Bookmark;
Query1.Close;
Query1.Open;
while (not Query1.Eof) and (Query1.BookmarkvBookmark) do
Query1.Next;
De todas maneras tambi�n funciona con locate, s�lo que te obliga a depender del numero de campos de la clave primaria.
Un saludo.