2013-04-26 2 views
0

Я пытаюсь создать моментальный снимок базы данных SQL Server (MSSQL EXPRESS 2012 SP # 1) из кода Delphi (XE2). Код выполняется без каких-либо проблем, но на самом деле ни один файл снимка не создаетсяРеализация функции моментального снимка SQL в SQL Express 2012

Пример кода:

.... LoadStringfromFile (sqlFilename, SqlString);

sqlString := StringReplace(sqlString, 'db_snapshot_name', SnapshotName, []); 
sqlString := StringReplace(sqlString, 'physical_file_name', SnapshotFolder, []); 
sqlString := StringReplace(sqlString, 'logical_file_name', DatabaseName, []); 
sqlString := StringReplace(sqlString, 'source_database_name', DatabaseName, []); 

Memo1.Lines.Add(sqlString); // result see below .... 

ExecuteSQLQuery(sqlString); 

SSStatusBar.SimpleText := ' run sql file done ! '; 

end; 

procedure TSnapShotForm.ExecuteSQLQuery(const sqlValue: string); 
var 
aSQLQuery: .....; 
begin 

    /// 
    /// 
aSQLQuery:=.......Create(self); 

aSQLQuery.Active := false; 

aSQLQuery.Connection := aConnection; 

aSQLQuery.SQL.Add(sqlValue) ; 

aSQLQuery.Active := true; 

aSQLQuery.Free; 

end; 

Заявление SQL, используемый в настоящем тексте идет как этот

 CREATE DATABASE test_ss 
    ON ( NAME = 'test_evaluation', 
FILENAME = 'd:\test_ss') 
    AS SNAPSHOT OF test_evaluation 

Любая хорошая идея, что здесь не так?

+0

Вы можете использовать Connection.Execute (SQL); Работает ли в MSSMS? Снимок базы данных не поддерживается в Express Edition. – bummi

ответ

Смежные вопросы