DBF - recuperar um registro deletado

Top  Previous  Next

// Recuperar um Registro Deletado

 

DBIUndeleteRecord(Table1.Handle); // recupera o atual

 

 

 

// Recuperar todos

 

procedure TForm1.Button1Click(Sender: TObject);

var

  Table : TTable;

  RProps: RecProps;

begin

  Table := TTable.Create(Self); // cria tabela auxiliar

  with Table do

  begin

    // esta será igual a original (table1)

    DatabaseName := Table1.DatabaseName;

    TableName    := Table1.TableName;

    Open;

    // liga o soft delete

    DbiSetProp(hDbiObj(Handle),curSOFTDELETEON,1);

    Refresh;

    First;

    // procura por excluidos

    while not Eof do

    begin

      DbiGetRecord(Handle,dbiNOLOCK,nil,@RProps);

      // Se estiver marcado, recupera

      if RProps.bDeleteFlag then Check(DBIUndeleteRecord(Handle));

      Next;

    end;

    Close;

    Free;

  end;

end;