Jump to content


Photo

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


  • Please log in to reply
7 replies to this topic

#1 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 posts

Posted 28 October 2010 - 08:47 PM

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 posts

Posted 29 October 2010 - 09:36 AM

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 posts

Posted 30 October 2010 - 10:30 PM

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 posts
  • LocationEspaña

Posted 31 October 2010 - 02:48 PM

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
  • 2137 posts

Posted 01 November 2010 - 05:36 PM

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 posts

Posted 01 November 2010 - 09:39 PM

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
  • 2092 posts
  • LocationRepública Dominicana

Posted 02 November 2010 - 07:09 AM

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 posts

Posted 05 November 2010 - 11:30 PM

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




IP.Board spam blocked by CleanTalk.