Cómo realizo una copia de seguridad de mi BD completa desde Delphi7
#1
Escrito 28 octubre 2010 - 08:47
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 ?
#2
Escrito 29 octubre 2010 - 09:36
uses ShlObj, ActiveX; procedure TForm1.Button1Click(Sender: TObject); var bi: TBrowseInfo; idl: PItemIDList; PathName: array [0..MAX_PATH] of Char; begin FillChar(bi, SizeOf(bi), 0); bi.hwndOwner := Handle; idl := SHBrowseForFolder(bi); if not Assigned(idl) then Exit; SHGetPathFromIDList(idl, @PathName); CoTaskMemFree(idl); ADOConnection1.Execute('backup database MyDB to disk = ''' + PathName + '\MyDB_' + FormatDateTime('yyymmdd', Now) + '.bak'''); end;
#3
Escrito 30 octubre 2010 - 10:30
Y por que me da un archivo (.bak) ??
#4
Escrito 31 octubre 2010 - 02:48
A la primera pregunta... ni idea. A la segunda, pues porque tu le das esa extensión, fíjate en el execute
Nos leemos
#5
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:
uses ShlObj, ActiveX; procedure TForm1.Button1Click(Sender: TObject); var bi: TBrowseInfo; idl: PItemIDList; PathName: array [0 .. MAX_PATH] of Char; begin FillChar(bi, SizeOf(bi), 0); bi.hwndOwner := Handle; idl := SHBrowseForFolder(bi); if not Assigned(idl) then Exit; SHGetPathFromIDList(idl, @PathName); CoTaskMemFree(idl); try ADOConnection1.Execute('backup database MyDB to disk = ''' + PathName + '\MyDB_' + FormatDateTime('yyymmdd', Now) + '.bak'''); ShowMessage('Copia de seguridad exitosa'); except ShowMessage ('Ocurrió un error y no se pudo completar la copia de seguridad'); raise end; end;
#6
Escrito 01 noviembre 2010 - 09:39
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 ???
#7
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.
#8
Escrito 05 noviembre 2010 - 11:30
Como le indico que me haga el Backup ??