Ir al contenido


Foto

Cómo realizo una copia de seguridad de mi BD completa desde Delphi7


  • Por favor identifícate para responder
7 respuestas en este tema

#1 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 28 octubre 2010 - 08:47

Saludos

En esta ocasion...

Cómo realizo una copia de seguridad completa de toda mi BD hecha en SQL Server 2005 Express, desde Delphi 7 con solo apretar un boton, en caso de ocurrir una infeccion de virus u otra situación que ponga en pelibro la BD utilizada ????????

Y que me permita seleccionar la carpeta de destino donde se realizará la copia de la BD
Será posible ?

  • 0

#2 cHackAll

cHackAll

    Advanced Member

  • Administrador
  • 599 mensajes

Escrito 29 octubre 2010 - 09:36

BACKUP y RESTORE, tal cual el siguiente ejemplo;



delphi
  1. uses ShlObj, ActiveX;
  2.  
  3. procedure TForm1.Button1Click(Sender: TObject);
  4. var
  5. bi: TBrowseInfo;
  6. idl: PItemIDList;
  7. PathName: array [0..MAX_PATH] of Char;
  8. begin
  9. FillChar(bi, SizeOf(bi), 0);
  10. bi.hwndOwner := Handle;
  11. idl := SHBrowseForFolder(bi);
  12. if not Assigned(idl) then Exit;
  13. SHGetPathFromIDList(idl, @PathName);
  14. CoTaskMemFree(idl);
  15. ADOConnection1.Execute('backup database MyDB to disk = ''' + PathName + '\MyDB_' + FormatDateTime('yyymmdd', Now) + '.bak''');
  16. end;


  • 0

#3 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 30 octubre 2010 - 10:30

Como se yo que fue positiva la copia y que lo muestre en pantalla en un showmessage ???

Y por que me da un archivo (.bak) ??

  • 0

#4 cadetill

cadetill

    Advanced Member

  • Moderadores
  • PipPipPip
  • 994 mensajes
  • LocationEspaña

Escrito 31 octubre 2010 - 02:48

Buenas,

A la primera pregunta... ni idea. A la segunda, pues porque tu le das esa extensión, fíjate en el execute ;)

Nos leemos

  • 0

#5 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 01 noviembre 2010 - 05:36

Como se yo que fue positiva la copia y que lo muestre en pantalla en un showmessage ???

Y por que me da un archivo (.bak) ??


Para la primera pregunta intenta con esto:



delphi
  1. uses ShlObj, ActiveX;
  2.  
  3. procedure TForm1.Button1Click(Sender: TObject);
  4. var
  5.   bi: TBrowseInfo;
  6.   idl: PItemIDList;
  7.   PathName: array [0 .. MAX_PATH] of Char;
  8. begin
  9.   FillChar(bi, SizeOf(bi), 0);
  10.   bi.hwndOwner := Handle;
  11.   idl := SHBrowseForFolder(bi);
  12.   if not Assigned(idl) then
  13.     Exit;
  14.   SHGetPathFromIDList(idl, @PathName);
  15.   CoTaskMemFree(idl);
  16.   try
  17.     ADOConnection1.Execute('backup database MyDB to disk = ''' + PathName +
  18.         '\MyDB_' + FormatDateTime('yyymmdd', Now) + '.bak''');
  19.     ShowMessage('Copia de seguridad exitosa');
  20.   except
  21.     ShowMessage
  22.       ('Ocurrió un error y no se pudo completar la copia de seguridad');
  23.     raise
  24.   end;
  25. end;


  • 0

#6 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 01 noviembre 2010 - 09:39

Sigo con la duda de por qué me da como resultado un archivo .bak

que hago con el en caso de que la BD original haya sido dañada por algun virus o algo asi ???
como la integraria de nuevo a mi software, porque tengo entendido que la BD original tiene dos archivos ???
  • 0

#7 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 02 noviembre 2010 - 07:09

Sigo con la duda de por qué me da como resultado un archivo .bak

que hago con el en caso de que la BD original haya sido dañada por algun virus o algo asi ???
como la integraria de nuevo a mi software, porque tengo entendido que la BD original tiene dos archivos ???


Saludos.

Creo que lo ideal sería que el propio manejador de SQL Server sea quien haga sus copias de respaldo en vez de una aplicación hecha a "mano".

Pues para tu pregunta sobre los virus o algo así, para eso se usa el Backup, como indique arriba el manejador de SQL Server tiene la capacidad de realizar dicho proceso de distintas maneras; me explico, puedes indicarle una agenda de cuando (Hora y Fecha) deseas realizar la copia.

Si tu BD original se daña por cualquier circunstancia y no tienes una copia a mano, que Dios te agarre confesado porque es bastante difícil recuperar la información.
  • 0

#8 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 05 noviembre 2010 - 11:30

Tengo instalado el SQL server 2005 express.
Como le indico que me haga el Backup ??
  • 0




IP.Board spam blocked by CleanTalk.