Server CurrentServer = new Server(sqlConnectionStringSettings.DataSource);
Database CurrentDatabase = CurrentServer.Databases[sqlConnectionStringSettings.InitialCatalog];
/// <summary>
/// Backup database
/// </summary>
private BackupResult MakeBackup(Database db, Server srv, string backupName,
string backupDesc, string backupDirectory, bool isIncremental)
{
try
//Nouveau backup
Backup backup = new Backup();
backup.Action = BackupActionType.Database;
backup.BackupSetDescription = backupDesc;
backup.BackupSetName = backupName;
backup.Database = db.Name;
//BackupDeviceItem représente le type de support de notre sauvegarde
BackupDeviceItem backupDeviceItem = new BackupDeviceItem(
String.Format("_{0}_{1}.bak", db.Name, DateTime.Now.Ticks.ToString()), DeviceType.File);
//Ajout du support au backup courant
backup.Devices.Add(backupDeviceItem);
//Backup incremental ou FUll
backup.Incremental = isIncremental;
//Date d'expiration
DateTime backupdate = new System.DateTime(2010, 12, 31);
backup.ExpirationDate = backupdate;
// Truncate du log
backup.LogTruncation = BackupTruncateLogType.Truncate;
// Evènement de porgression
backup.PercentComplete += new PercentCompleteEventHandler(BackupOrRestorePercentComplete);
// Exécution du backup
backup.SqlBackup(srv);
return new BackupResult("Sauvegarde terminée", DialogResult.OK);
}
catch (SmoException ex)
return new BackupResult(String.Format("Sauvegarde échouée: {0}", ex.Message), DialogResult.Abort);