Para os mais experientes (Problemas com Back-up)

05/06/2003

0

Salve,

tenho uma rotina de back-up muito boa e utilizo essa em diversas aplicações... O problema é que surgiu a necessidade do back-up ser efetuado em um arquivo .ZIP. Como escrevi acima, utilizo a mesma rotina em diversas aplicações, por isso gostaria de apenas adapta-la para que essa efetue o back-up em um arquivo .ZIP. Utilizar outra rotina sairia muito trabalhoso. Abaixo segue a rotina que utilizo, se alguém conseguir adapta-la eu agradeço demais!


implementation

{$R *.DFM}


procedure TFrmBackup.itBtnExecutarClick(Sender: TObject);
var
Indice: Integer;
IndCampo: Integer;
Campos: String;
begin
// Le todos os itens da Filelistbox para copiar
// o databasename e constante
if Directorylistbox1.Directory = Directorylistbox2.Directory then // verifica se os diretorios sao diferentes
begin
showmessage(´Diretorios de Destino e Origem devem ser diferentes !!´);
exit; // sai da procedure
end;
TbOrigem.DataBaseName:= Directorylistbox1.Directory ; // serao sempre constantes
TbDestino.DataBaseName:= Directorylistbox2.Directory ;
//ajusta o painel de copia animada
panel.visible := true;
Animate1.Active := true;
for indice:= 0 to fileListBox.items.count - 1 do
begin
TbOrigem.tableName := filelistbox.items[indice];
TbDestino.TableName:= filelistbox.items[indice];
PanelCopiando.caption := label1.caption + ´\´ +
filelistbox.items[indice];
PanelDestino.caption := label2.caption + ´\´ +
filelistbox.items[indice];

{ TestProgress(1000); // ativa progressbar nao funcionou}

// essa linha forca o nome do arq. copiado a aparecer
Application.ProcessMessages;
// peca o help do tapplication e tscreen

if copy(filelistbox.items[indice],1,1) <> ´_´then
begin
BatchMove.Execute; // executa copia

//enchergar os indices para poder copia-los p/destino
TbOrigem.open;
Campos:=´´;
for IndCampo:=0 to Tborigem.FieldCount - 1 do
begin
if TbOrigem.fields[indCampo].IsIndexField then
begin
if TbOrigem.Fields[indcampo].index = 0 then
Campos:=Campos + TbOrigem.Fields[indcampo].fieldname
else
Campos:=Campos + ´;´ + TbOrigem.fields[IndCampo].fieldname;
end; // begin
end;
TbOrigem.close;
TbDestino.close;
if campos <> ´´ then
TbDestino.AddIndex(´´, Campos, [IxPrimary]);
campos:=´´;
end;

end; // for
panel.visible := false; // desliga a exibicao do painel animado de copia
Animate1.Active := false;
showmessage(´Backup realizado !!!´);
frmbackup.Close;

end;

procedure TFrmBackup.BtExecutarClick(Sender: TObject);
var
Indice: Integer;
IndCampo: Integer;
Campos: String;
begin
// Le todos os itens da Filelistbox para copiar
// o databasename e constante
if Directorylistbox1.Directory = Directorylistbox2.Directory then // verifica se os diretorios sao diferentes
begin
showmessage(´Diretorios de Destino e Origem devem ser diferentes !!´);
exit; // sai da procedure
end;
TbOrigem.DataBaseName:= Directorylistbox1.Directory ; // serao sempre constantes
TbDestino.DataBaseName:= Directorylistbox2.Directory ;
//ajusta o painel de copia animada
panel.visible := true;
Animate1.Active := true;
for indice:= 0 to fileListBox.items.count - 1 do
begin
TbOrigem.tableName := filelistbox.items[indice];
TbDestino.TableName:= filelistbox.items[indice];
PanelCopiando.caption := label1.caption + ´\´ +
filelistbox.items[indice];
PanelDestino.caption := label2.caption + ´\´ +
filelistbox.items[indice];

{ TestProgress(1000); // ativa progressbar nao funcionou}

// essa linha forca o nome do arq. copiado a aparecer
Application.ProcessMessages;
// peca o help do tapplication e tscreen

if copy(filelistbox.items[indice],1,1) <> ´_´then
begin
BatchMove.Execute; // executa copia

//enchergar os indices para poder copia-los p/destino
Session.AddPassword(´123´);
TbOrigem.open;
Campos:=´´;
for IndCampo:=0 to Tborigem.FieldCount - 1 do
begin
if TbOrigem.fields[indCampo].IsIndexField then
begin
if TbOrigem.Fields[indcampo].index = 0 then
Campos:=Campos + TbOrigem.Fields[indcampo].fieldname
else
Campos:=Campos + ´;´ + TbOrigem.fields[IndCampo].fieldname;
end; // begin
end;
TbOrigem.close;
TbDestino.close;
if campos <> ´´ then
TbDestino.AddIndex(´´, Campos, [IxPrimary]);
campos:=´´;
end;

end; // for
panel.visible := false; // desliga a exibicao do painel animado de copia
Animate1.Active := false;
showmessage(´Backup realizado com sucesso.´);

end;

procedure TFrmBackup.btFecharClick(Sender: TObject);
begin
close;
end;


procedure TFrmBackup.BtSairClick(Sender: TObject);
begin
Close;
end;

end.


Flaviolrf

Flaviolrf

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar