Thema: Delphi MSSQL DB Restore Problem

Einzelnen Beitrag anzeigen

Pet04

Registriert seit: 26. Sep 2007
86 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

MSSQL DB Restore Problem

  Alt 14. Jan 2020, 11:00
Datenbank: MSSQL • Version: 2017 • Zugriff über: Ado
Hallo Zusammen,

Ich habe folgenden Problem.
Ich möchte eine Datenbank (Backupdatei .bak Datei) von einem SQL Server 2008 R2 Express nach SQL 2017 Express einspielen.

Dabei muss ich nun mit move den Pfade für den 2017er Server Ordner angeben.

Dabei scheitere ich momentan an die Syntax.

Mein alter Code, ohne Pfadangebe "MOVE TO" :

Code:
  ...
          with ADOQ1 do
          begin
         
            ProgressBar2.Position := 50;
            SQL.clear;
            SQL.Text := 'restore database :DBName from '
                        +'Disk = :BakPfadName ';              
            Parameters.ParamByName('BakPfadName').Value := sTemp;
            Parameters.ParamByName('DBName').Value := sDBName;
            ExecSQL();
          end; (*with*)
          …


Über das MM Studio funktioniert es:

Code:
RESTORE DATABASE [db_Name] FILE = N'db_Name' FROM DISK = N'E:\Pfad des Backups\db_Name.bak' WITH FILE = 1, MOVE N'db_Name' TO N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\DATA\db_Name.mdf', MOVE N'db_Name_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\DATA\db_Name.LDF', NOUNLOAD, REPLACE
Wie muss die Syntax aussehen, dass ich die Pfade, MDF und LDF als Variable / Parameter übergeben kann ?

Beispielcode wäre schön.


Vielen Dank.
  Mit Zitat antworten Zitat