Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Neuen Beitrag zur Code-Library hinzufügen (https://www.delphipraxis.net/33-neuen-beitrag-zur-code-library-hinzufuegen/)
-   -   Delphi Vollbackup einer SQL Server Datenbank erstellen (https://www.delphipraxis.net/144736-vollbackup-einer-sql-server-datenbank-erstellen.html)

shmia 15. Dez 2009 13:30


Vollbackup einer SQL Server Datenbank erstellen
 
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;

HeikoAdams 16. Dez 2009 08:34

Re: Vollbackup einer SQL Server Datenbank erstellen
 
Also ich würde anstatt
Delphi-Quellcode:
filename := Format('C:\%s_%s.BAK', [DB, FormatDateTime('d_mmm_yyyy', Date)]);
eher
Delphi-Quellcode:
filename := Format('C:\%s_%s.BAK', [FormatDateTime('yyyymmdd', Date), DB]);
verwenden, da man dann die Dateien leichter nach dem Datum sortieren kann.

DeddyH 16. Dez 2009 09:02

Re: Vollbackup einer SQL Server Datenbank erstellen
 
Und vielleicht sollte man den Zielpfad als Parameter übergeben lassen und ggf. auf lokales Laufwerk prüfen. Es ist ja immerhin möglich, dass es kein Laufwerk C: gibt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz