Ver Mensaje Individual
  #3  
Antiguo 26-01-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Como dice Chris, creo que el problema esta donde tomás el Bookmark, el alcance de la variable donde se almacena o si es modificada en algún punto, ya que el echo de cerrar la consulta no afecta a la variable TBookmarkStr.

Te pongo un ejemplo simple por si te sirve de ayuda:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  BM: TBookmarkStr;
begin
  // Mostrar algunos datos...
  IBQuery1.SQL.Clear;
  IBQuery1.SQL.Add('SELECT * FROM COUNTRY');
  IBQuery1.Open;
  IBQuery1.MoveBy(4);      // Desplazarse 4 registros
  // Antes de modificar, guardar la posición actual del DataSet
  BM:= DBGrid1.DataSource.DataSet.Bookmark; 
  IBQuery1.Close;
  // Modificar algo...
  IBQuery1.SQL.Clear;
  IBQuery1.SQL.Add('UPDATE COUNTRY');
  IBQuery1.SQL.Add('SET CURRENCY = :MONEDA');
  IBQuery1.SQL.Add('WHERE COUNTRY = :PAIS');
  IBQuery1.ParamByName('PAIS').AsString:= 'Japan';
  IBQuery1.ParamByName('MONEDA').AsString:= 'Yin';
  IBQuery1.ExecSQL;
  IBQuery1.Close;
  // Mostrar datos
  IBQuery1.SQL.Text:= 'SELECT * FROM COUNTRY';
  IBQuery1.Open;
  // Mover a posición almacenada en BM
  DBGrid1.DataSource.DataSet.Bookmark := BM; 
end;

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 26-01-2011 a las 18:20:44.
Responder Con Cita