Fórum Sistema de Backup Frreware/rotina gratis #152236
05/04/2003
0
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
Application.MessageBox(´Diretórios de ´´Destino´´ e ´´Origem´´ devem ser diferentes!!´, ´Erro´,
MB_ICONERROR + MB_OK);
Exit; // sai da procedure
end;
//verificando a existencia de de arquivos para atualizar
if FileExists(´d:\pasta aqui\*.db´) then
if Application.MessageBox(´Arquivos já existentes nesta pasta, deseja atualizar?´,
´Aviso´, MB_YESNO + MB_ICONINFORMATION + MB_DEFBUTTON1) = idYes then
else
Exit;
Screen.Cursor := crHourGlass;
TbOrigem.DataBaseName := Directorylistbox1.Directory ; // serao sempre constantes
TbDestino.DataBaseName := Directorylistbox2.Directory ;
//ajusta o painel de copia animada
Gauge1.Visible := True;
Gauge1.Progress := FileListBox.items.count - 1;
Panel.visible := true;
Animate1.Active := true;
for Indice := 0 to FileListBox.items.count - 1 do
begin
Gauge1.Progress := Indice;
TbOrigem.TableName := FileListBox.items[indice];
TbDestino.TableName:= FileListBox.items[indice];
PanelCopiando.Caption := Label1.Caption + ´\´ +
FileListBox.items[indice];
PanelDestino.Caption := Label2.Caption + ´\´ +
FileListBox.items[indice];
// 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;
end;
TbOrigem.Close;
TbDestino.Close;
if Campos <> ´´ then
TbDestino.AddIndex(´´, Campos, [ixPrimary]);
Campos := ´´;
end;
end;
Panel.Visible := False; // desliga a exibicao do painel animado de copia
Animate1.Active := False;
Screen.Cursor := crDefault;
Application.MessageBox(´Backup realizado com sucesso!´, ´Aviso´, MB_ICONINFORMATION + MB_OK);
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
Application.MessageBox(´Diretórios de ´´Destino´´ e ´´Origem´´ devem ser diferentes!!´, ´Erro´,
MB_ICONERROR + MB_OK);
Exit; // sai da procedure
end;
//verificando a existencia de de arquivos para atualizar
if FileExists(´d:\pasta aqui\*.db´) then
if Application.MessageBox(´Arquivos já existentes nesta pasta, deseja atualizar?´,
´Aviso´, MB_YESNO + MB_ICONINFORMATION + MB_DEFBUTTON1) = idYes then
else
Exit;
Screen.Cursor := crHourGlass;
TbOrigem.DataBaseName := Directorylistbox1.Directory ; // serao sempre constantes
TbDestino.DataBaseName := Directorylistbox2.Directory ;
//ajusta o painel de copia animada
Gauge1.Visible := True;
Gauge1.Progress := FileListBox.items.count - 1;
Panel.visible := true;
Animate1.Active := true;
for Indice := 0 to FileListBox.items.count - 1 do
begin
Gauge1.Progress := Indice;
TbOrigem.TableName := FileListBox.items[indice];
TbDestino.TableName:= FileListBox.items[indice];
PanelCopiando.Caption := Label1.Caption + ´\´ +
FileListBox.items[indice];
PanelDestino.Caption := Label2.Caption + ´\´ +
FileListBox.items[indice];
// 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;
end;
TbOrigem.Close;
TbDestino.Close;
if Campos <> ´´ then
TbDestino.AddIndex(´´, Campos, [ixPrimary]);
Campos := ´´;
end;
end;
Panel.Visible := False; // desliga a exibicao do painel animado de copia
Animate1.Active := False;
Screen.Cursor := crDefault;
Application.MessageBox(´Backup realizado com sucesso!´, ´Aviso´, MB_ICONINFORMATION + MB_OK);
Anonymous
Curtir tópico
+ 0
Responder
Posts
05/04/2003
José Silva
A sua ideia foi otima Marcelo2 mais faltou explicar quais os componentes que deverá ser colocado no form para que os que não sabem muito de programação tenha uma noção de como são colocados os componentes no form, isto é, expliar melhor quais os componentes devera ser colocado e explicar como fazer as funçoes.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)