Der folgende Code erzeugt ein Vollbackup einer MS
SQL Server 2000/2005/2008 Datenbank.
Man benötigt dazu eine aktive
ADO-Connection zur Datenbank.
Die Zieldatei kann nur auf einer lokalen Festplatte des Servers liegen.
Der angemeldete Datenbankbenutzer muss die Serverrolle "diskadmin" haben, damit er Backups erstellen darf.
Delphi-Quellcode:
procedure BackupSQLServerDB(
const con:TADOConnection);
var
DB :
string;
filename:
string;
ci : IUnknown;
SQL :
string;
begin
DB := con.Properties.Item['
Initial Catalog'].Value;
filename := Format('
C:\%s_%s.BAK', [
DB, FormatDateTime('
d_mmm_yyyy', Date)]);
if InputQuery('
Dateiname der Backup Datei', '
Dateiname (nur lokale Serverplatten)', filename)
then
begin
ci := DisplayCursor(crSQLWait);
SQL := '
BACKUP DATABASE '+
DB+'
TO DISK = '+QuotedStr(filename)+
'
WITH INIT,SKIP';
con.CommandTimeout := 60 * 8;
// = 8 Minuten
con.Execute(
SQL);
end;
end;