Форум: "Базы";
Текущий архив: 2003.10.09;
Скачать: [xml.tar.bz2];
ВнизRESTORE DATABASE Найти похожие ветки
← →
MakNik (2003-09-18 14:46) [0]Поскажите, пожалуйста, как корректно восстановить базу?
Мой код не работает. Как это корректно делать, когда работают другие пользователи? Возможно ли их програмно снять или заблокировать???
if OpenDialog1.Execute then
begin
if not FileExists(OpenDialog1.FileName) then Exit;
DMForm.ADOConnection.Connected:=false;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add("Use dbTRANSFORMER EXEC sp_addumpdevice ""disk"", ""mydiskdump1"", ""c:\TRANSFORMERDB3.bak"" ");
ADOQuery.SQL.Add("RESTORE DATABASE dbTRANSFORMER FROM mydiskdump1");
ADOQuery.SQL.Add("EXEC sp_dropdevice mydiskdump1");
try
ADOQuery.ExecSQL;
except
MessageDlg("Ошибка!", mtError ,[mbOk], 0);
end;
ReloadTree;
End;
← →
Nikolay M. (2003-09-18 14:57) [1]
> Как это корректно делать, когда работают другие пользователи?
AFAIK, никак. Сначала - отсоединить всех пользователей.
← →
MakNik (2003-09-18 15:18) [2]Но даже когда все отключены, этот код не работает (хотя в SQL Query Analyzer этот же код работает). В чем ошибка???
← →
Nikolay M. (2003-09-18 15:35) [3]Попробуй оформить это:
ADOQuery.SQL.Add("Use dbTRANSFORMER EXEC sp_addumpdevice ""disk"", ""mydiskdump1"", ""c:\TRANSFORMERDB3.bak"" ");
ADOQuery.SQL.Add("RESTORE DATABASE dbTRANSFORMER FROM mydiskdump1");
ADOQuery.SQL.Add("EXEC sp_dropdevice mydiskdump1");
в виде хранимой процедуры и вызывай ее. А то когда ты все это в один-единственный запрос пхаешь как-то страшновато становится...
← →
Reindeer Moss Eater (2003-09-18 16:10) [4]Создай на сервере JOB, делающий то что надо.
Выброси всю байду написанную выше.
Вызывай системную sp для запуска этого джоба.
← →
MakNik (2003-09-18 16:45) [5]JOB не подойдет... что-то другое нужно...
← →
Reindeer Moss Eater (2003-09-18 16:52) [6]JOB подойдет и что-то другое не нужно.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.10.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c