Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-05-2004
luna luna is offline
Miembro
 
Registrado: may 2004
Posts: 17
Poder: 0
luna Va por buen camino
Copia de seguridad Delphi

Hola!!
Estoy intentando hacer una copia de seguridad en delphi de dos tablas: alumnos.dbf y bancos.dbf, me han dicho que utilice el siguiente comando: BackupDatabase(connString, "MyTestDB", "D:\MyTestDbBackup.bak")
pero no sé a qué se corresponden los campos y si con esta sentencia me valdría para hacer la copia de dichas tablas en un disquette.
Muchas gracias!!!
Responder Con Cita
  #2  
Antiguo 23-05-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Mírate la ayuda de la función CopyFile al fin y al cabo lo que quieres es copiar unos ficheros. No te olvides si tienes campos Memo de copiar los ficheros del tipo .Dbt y dependiendo el tipo de tablas los ficheros .Cdx ó .Mdx.

También podrías utilizar un fichero de tipo bat
Código:
Echo off
cls
Copy MiTabla.* a:>nul
Copy MiTabla2.* a:>nul
Y llamarlo desde Delphi con la función Winexec.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 23-05-2004
Avatar de Combat-F2D
Combat-F2D Combat-F2D is offline
Miembro
 
Registrado: may 2003
Ubicación: Toletum
Posts: 454
Poder: 21
Combat-F2D Va por buen camino
Cita:
BackupDatabase(connString, "MyTestDB", "D:\MyTestDbBackup.bak")
me podrias dar informacion sobre esa funcion??
__________________
online
Responder Con Cita
  #4  
Antiguo 23-05-2004
luna luna is offline
Miembro
 
Registrado: may 2004
Posts: 17
Poder: 0
luna Va por buen camino
HOLA!!

He intentado hacer la copia por otro camino y me sale el siguiente error:
"cannot open AVI". Alguien sabe lo que significa??

Por cierto Julio, no te puedo ayudar porque sigo sin entender los parámetros de la función.

Gracias!!
Responder Con Cita
  #5  
Antiguo 23-05-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Cita:
He intentado hacer la copia por otro camino y me sale el siguiente error:
"cannot open AVI". Alguien sabe lo que significa??
Cuando dices por otro camino, que quieres decir?, si quieres que te ayudemos nos tienes que ayudar tu también, dando más detalles y siendo más explícito.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #6  
Antiguo 23-05-2004
luna luna is offline
Miembro
 
Registrado: may 2004
Posts: 17
Poder: 0
luna Va por buen camino
HOla!!!

Me dijeron que para hacer una copia de seguridad de dos tablas: alumnos.dbf y bancos.dbf sería
muy simple con el comando backupdatabase, pero no lo entiendo.

Entonces me pasaron un código, lo he arreglado un poco xo me sale el error de
cannot open AVI. El código es el siguiente. La primera función y el segundo procedimiento pertenecen
a una unidad y son llamados desde la unidad que contiene el tercer procedimiento.

Graciasssssssss
Código Delphi [-]
 
function TForm5.discolisto(drive:char):boolean;
 var ErrorMode:word;
 begin
  if drive in ['a'..'z'] then Dec(Drive,$20);
  if not (drive in ['A'..'Z'] )then
   raise EConvertError.Create('Unidad no válida');
  ErrorMode:=SetErrorMode(SEM_FailCriticalErrors);
  try
   if DiskSize(Ord(drive)-$40) = -1 then
    result:=false
     else result:=true;
  finally
   SetErrorMode(ErrorMode);
  end;
 end;
procedure TForm5.copiarTabla(const strFuente,strTarget:string);
 var hDB:HDBIDB;
 const SOBRESCRIBIR=Bool(TRUE);
 begin
  screen.cursor:=crHourglass;
  with TTable.Create(Application) do
   try
    DatabaseName:=extractFilePath(strFuente);
    TableName:=extractFileName(strFuente);
    ProgressBar1.Position:=10;
    open;
    ProgressBar1.Position:=15;
    hDB:=DBHandle;
    close;
    ProgressBar1.Position:=25;
    check(dbiCopyTable(hDB,SOBRESCRIBIR,pChar(strFuente),'DBASE',
pChar(strTarget)));
    ProgressBar1.StepBy(25);
   finally
    free;
    ProgressBar1.Position:=25;
    screen.cursor:=crDefault ;
    ProgressBar1.Position:=ProgressBar1.Max;
   end;
  end;
 end.
 
procedure TPRINCIPAL.CopiaClick(Sender: TObject);
begin
 origen:= origen1;
 destino:=destino1;
 if Form5.discolisto(des) then
  begin
   with Form5 do
    begin
    Show;
     animacion.active:=true;
     copiarTabla(origen,destino);
     Lcopia.Caption:='Copia realizada ';
     animacion.active:=false;
     close;
    end;
 end
 else
  MessageDlg('Introduzca disco',mtWarning,[mbOK],0);
end;

Última edición por marcoszorrilla fecha: 23-05-2004 a las 19:29:03.
Responder Con Cita
  #7  
Antiguo 23-05-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Dios!!!! pero como se le va la olla a la peña!!!!

luna, en serio, si sólo son 2 ficheritos..... has caso a Marcos y mírate el comando CopyFile

Si fuera todo una carpeta, en mi web tienes un truco (no recuerdo si el 1 o el 2 ) que te ayudará a copiar toda una carpeta

También tienes en mi web un programa para hacer backup que incluso te comprime los datos (usando la librería ZLib), pero repito, si sólo son 2 tablas... no te compliques la vida y usa lo que te comenta Marcos
Responder Con Cita
  #8  
Antiguo 23-05-2004
luna luna is offline
Miembro
 
Registrado: may 2004
Posts: 17
Poder: 0
luna Va por buen camino
Hola otra vez!!!

Hemos entrado en tu pagina y el truco 2 está muy bien xo no lo entendemos del todo, de q parte podríamos prescindir o todo es absolutamente necesario para lo que necesitamos hacer??

buscamos lo del CopyFile en la ayuda de delphi xo no vienen ejemplos


Graciasssssssssss
Responder Con Cita
  #9  
Antiguo 23-05-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Hola

Como te decía, eso es para copiar toda una carpeta y sus subcarpetas. Si es solo para 2 archivos y sabes la ruta y el nombre.....

Código Delphi [-]
CopyFile('FOrigen', 'FDestino', false);
Responder Con Cita
  #10  
Antiguo 23-05-2004
luna luna is offline
Miembro
 
Registrado: may 2004
Posts: 17
Poder: 0
luna Va por buen camino
Hola!!

Somos muy pesadas, xo eso es lo que hemos hecho:

FOrigen:=' C:\Documents and Settings\MANUEL\Mis documentos\Home\DELPHI\Fuentes Ejercicios Delphi\Tablas\Bancos.dbf';
FDestino:=' C:\Documents and Settings\MANUEL\Mis documentos';
ok:=CopyFile(Pchar(FOrigen), Pchar(FDestino), false);
if ok then
MessageDlg('funciona',mtWarning,[mbOK],0);

¿Qué es lo que estamos haciendo mal? xq el mensaje de ok no se imprime y
x supuesto no copia nada

gracias de verdad.
Responder Con Cita
  #11  
Antiguo 23-05-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
luna, ¿porqué no pruebas a meter tu código en las etiquetas [ DELPH ] y [ / DELPHI ] sin espacios?, quedaría algo así:

Código Delphi [-]
FOrigen:=' C:\Documents and Settings\MANUEL\Mis documentos\Home\DELPHI\Fuentes Ejercicios Delphi\Tablas\Bancos.dbf';
FDestino:=' C:\Documents and Settings\MANUEL\Mis documentos';
ok:=CopyFile(Pchar(FOrigen), Pchar(FDestino), false);
  if ok then
     MessageDlg('funciona',mtWarning,[mbOK],0);

Me parece a mí que el error está en:
Código Delphi [-]
FDestino:=' C:\Documents and Settings\MANUEL\Mis documentos';
No especificas el nombre del archivo, supongo que la solución sería sustituirlo por
Código Delphi [-]
FDestino:=' C:\Documents and Settings\MANUEL\Mis documentos\Bancos.dbf';

Saludos!
__________________
:)
Responder Con Cita
  #12  
Antiguo 23-05-2004
luna luna is offline
Miembro
 
Registrado: may 2004
Posts: 17
Poder: 0
luna Va por buen camino
Gracias!!!!!!!!

llevamos toda una tarde y al final eran tres sentencias. Ahora entendemos cdo dijiste q se nos iba la olla con el código anterior!!
gracias a todos
Responder Con Cita
  #13  
Antiguo 23-05-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
¿Cuál fué al final la solución? ¿La de cadetill y marcoszorrilla en la que yo te he tenido que ayudar o alguna otra?
__________________
:)
Responder Con Cita
  #14  
Antiguo 24-05-2004
Julià T. Julià T. is offline
Miembro
 
Registrado: may 2003
Ubicación: en el teclado
Posts: 314
Poder: 21
Julià T. Va por buen camino
ojo al copiar ficheros de tablas, ya que si estas no estan siendo utilizadas o abiertas por la misma u otra aplicación, no se va a copiar todo el contenido de las tablas ya que una parte estará todavia en memória o peor la cópia podria no servir para nada.
Responder Con Cita
  #15  
Antiguo 24-05-2004
luna luna is offline
Miembro
 
Registrado: may 2004
Posts: 17
Poder: 0
luna Va por buen camino
Hola a tod@s!

Al final lo hicimos con el CopyFile y la ruta, y pensar las vueltas que le dimos, que malo es no saber!!!

Gracias de nuevo
Responder Con Cita
  #16  
Antiguo 12-10-2007
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
Y Para Restaurar

with IBBackupService1 do begin
Active := True;
try
DatabaseName := 'C:\SOFTWARE_NOMINA\NOMINA_GOBERNACION.GDB';
BackupFile.Add('D:\NOMINA_GOBERNACION.GDB');
ServiceStart;
while not EOF do Memo1.Lines.Add(GetNextLine);
finally
Active := False;
end;

COMO HAGO PARA RESTAURAR ESTA COPIA

CON EL IBRESTORESERVICE1
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 13:12:03.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi