Announcement

Collapse
No announcement yet.

Backup/Restore mit den DMO-Objekten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Backup/Restore mit den DMO-Objekten

    Hallo zusammen,<br>
    in 'Der Entwicker 2.2003' wurde gezeigt, wie man üeber das DMO eine Datenbank anlegen kann. Das hat alles prima funktioniert. Ich habe ein wenig rumexperimentiert. LogIns und User anlegen funzt auch sehr elegant. <br>Nur beim Backup/Restore will das einfach nicht klappen. Wenn ich das direkt mit zudammengebasteltetn SQL-Anweisungen an das SQL-Server-Object mit ExecuteImmediate() schicke geht das schon. Ich habe mir jedoch in den Kopf gesetzt, dass auch ueber den eleganteren Weg mit den Objekten zu realisieren. Hier tauchen dann aber schnell Probleme auf, weil ich nicht den Zusammenhang von dem Typen _Backup, _Restore und vor allem _BackupDevice kenne.<br>Kennt jemand die Loesung oder vielleicht eine Dokumentation von dem ganzen Objektmodell?<br><br>Bin fuer alle Tipps dankbar

  • #2
    Hallo,

    &gt;..eine Dokumentation von dem ganzen Objektmodell?

    auf der DVD der <b>Microsoft Developer Network Library</b> (MSDN Library) wird das vollständige SQLDMO-Objektobjekt im Zweig <i>Microsoft SQL Server | SDK Documentation | Building SQL Servers Applications | SQL-DMO</i> sehr ausführlich dokumentiert.

    &gt;Kennt jemand die Loesung

    Ich habe leider nur ein Beispiel für VB.NET "am Lager":

    <pre>

    Dim osvr As New SQLDMO.SQLServer()
    osvr.LoginSecure = True
    osvr.Connect(Me.lstSQLServers.SelectedItem)
    ' Backup-Objekt erzeugen
    Dim oBackup As New SQLDMO.Backup()
    With oBackup
    .Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database
    .BackupSetDescription = Me.txtBUSetDescription.Text
    .BackupSetName = Me.txtBUSetName.Text
    .Database = "Northwind"
    .Devices = "[" & Me.lstBackupDevices.SelectedItem & "]"
    .TruncateLog = SQLDMO.SQLDMO_BACKUP_LOG_TYPE.SQLDMOBackup_Log_Tru ncate
    .Initialize = True
    ' Backup ausführen
    .SQLBackup(osvr)
    End With
    osvr.DisConnect()
    osvr = Nothing
    oBackup = Nothing
    MessageBox.Show("Fertig", "Backup", MessageBoxButtons.OK)

    </pre>

    Um die Backup-Devices-Namen zu ermitteln, kann die <b>BackupDevices</b>-Kollektion abgefragt werden:

    <pre>

    Dim oDevice As SQLDMO.BackupDevice
    Dim osvr As SQLDMO.SQLServer = New SQLDMO.SQLServer()
    osvr.LoginSecure = True
    osvr.Connect(strSQLServer)
    lstBackupDevices.Items.Clear()
    For Each oDevice In osvr.BackupDevices
    lstBackupDevices.Items.Add(oDevice.Name)
    Next

    </pre>

    Das BackupDevice legt fest, wohin (Streamer oder Datei) das Backup gesichert werden soll. Und im Fall eines Streamers muss auch vorher die Frage geklärt werden, ob das Backup ans Ende des Bands angefügt werden soll, oder ob es alle vorgefundenen älteren Daten auf dem Band überschreiben soll

    Comment

    Working...
    X