Undelete em Paradox, é possível ?

Delphi

24/09/2003

Inadvertidamente deletei todos os registros de uma tabela Paradox 7. Ao abrir a tabela com o Database Desktop, ela se mostra vazia. Porém ocupa 128Kb. Ao abri-la com algum editor de texto, vê-se que está preenchida com centenas de linhas, porém incompreensíveis. Se alguém tiver alguma dica, ficarei muito grato. carlosrm.


Carlosrm

Carlosrm

Curtidas 0

Respostas

Helderjr

Helderjr

24/09/2003

Colega tente assim, peguei essa dica no livro 365 dicas de Delphi do Bruno Sonnino, nunca usei mas acredito que de certo pois as dicas do Bruno são muito uteis.

procedure TForm1.Button1Click(Sender: TObject);
var
Table : TTable;
RProps : RecProps;
begin
Table := TTable.Create(Self);
with Table do begin
DatabaseName := Table1.DatabaseName;
TableName := Table1.TableName;
Open;
DbiSetProp(hDbiObj(Handle),curSOFTDELETEON,1);
Refresh;
First;
While not Eof do begin
DbiGetRecord(Handle,dbiNOLOCK,nil,@RProps);
if RProps.bDeleteFlag then
Check(DBIUndeleteRecord(Handle));
Next;
end;
Close;
Free;
end;
end;


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

24/09/2003

Colegas,

Receio que esta rotina sirva apenas para tabelas dBase, pois a estrutura de tabelas Paradox é completamente diferente ao dBase. Acredito que não existe mecanismo de ´Undelete´ para tabelas Paradox.


GOSTEI 0
Bacalhau

Bacalhau

24/09/2003

Com ou sem essa possibilidade, relembro ao colega carlosrm que faça um backup antes de qualquer tentativa.
:wink: Abraço


GOSTEI 0
Sistemald

Sistemald

24/09/2003

Eu já utilizei uma rotina parecida com esta, só que ao invés de restaurar os dados usei para apagar, funcionou em bd Paradox.


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

24/09/2003

Colegas,

Eu nunca utilizei paradox, mas todas as respostas sobre este assunto que foi submetida ao TeamB teve a mesma resposta - Não é possível recuperar. Quanto a rotina semelhante que o colega se refere-se, deve ser uma rotina de PACK.


GOSTEI 0
Mmtoor

Mmtoor

24/09/2003

Prezado amigo.
Há um componente de nome atParadoxRepair, free.
Se ele não recuperar sua tabela paradox, esqueça.
Se quiser me mandar, tento por aqui.
valhaha.mysql@bol.com.br
MMTOOR2003


GOSTEI 0
Carlosrm

Carlosrm

24/09/2003

Agradeço a presteza e atenção de todos os colegas (inclusive pelo alerta e puxão-de-orelhas do Bacalhau (he he)) e vou seguir as orientações de vocês. MMTOOR2003, tô te mandando um e_mail...
De novo, obrigados... carlosrm.


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

24/09/2003

Prezado amigo. Há um componente de nome atParadoxRepair, free. Se ele não recuperar sua tabela paradox, esqueça. Se quiser me mandar, tento por aqui. valhaha.mysql@bol.com.br MMTOOR2003

Colegas,

TatParadoxRepair component The atParadoxRepair is a Paradox table repair component. Just drop in on form, assign a DatabaseName (or directory) and a TableName (in design-time or run-time) and execute the Rebuild method. It will fix the corrupted paradox file. The atParadoxRepair component needs the TUtil32.DLL file.


Ou seja, o objetivo do componente é reparar tabelas corrompidas e não recuperar registros ´deletados´.


GOSTEI 0
Bacalhau

Bacalhau

24/09/2003

Ó estimado carlorm não foi um puxão de orelhas!!! Há tempos tive um cliente que foi invadido por toxicodependentes (pessoal da droga) e incendiaram-lhe a empresa - o desgraçado não tinha backups e quase que se... digamos que enterrava a empresa!

Quanto ao undelete: eu fiz um teste em que criei uma pequena tabela com 3 registos. guardei (salvei) a tabela, apaguei os registos e guardei a nova tabela com os registos apagados num nome diferente.

Depois comparei no Notepad. O resultado foi um pouco preocupante, para não usar palavrões. Todo o espaço dos registos APAGADOS foi ocupado com a informação do ÚLTIMO registo apagado.

Alguém consegue explicar como os engenheiros Paradox caem nisto? Eu tenho sido o maior defendor do Paradox, mas depois desta...


GOSTEI 0
POSTAR