Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

RESTORE DATABASE [D5, MSSQL]


MakNik ©   (2003-09-18 14:46:00) 

Поскажите, пожалуйста, как корректно восстановить базу?
Мой код не работает. Как это корректно делать, когда работают другие пользователи? Возможно ли их програмно снять или заблокировать???
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;


Reindeer Moss Eater   (2003-09-18 16:52:00) [1]

JOB подойдет и что-то другое не нужно.


MakNik   (2003-09-18 16:45:00) [2]

JOB не подойдет... что-то другое нужно...


Reindeer Moss Eater   (2003-09-18 16:10:00) [3]

Создай на сервере JOB, делающий то что надо.
Выброси всю байду написанную выше.
Вызывай системную sp для запуска этого джоба.


Nikolay M.   (2003-09-18 15:35:00) [4]

Попробуй оформить это:
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");

в виде хранимой процедуры и вызывай ее. А то когда ты все это в один-единственный запрос пхаешь как-то страшновато становится...


MakNik   (2003-09-18 15:18:00) [5]

Но даже когда все отключены, этот код не работает (хотя в SQL Query Analyzer этот же код работает). В чем ошибка???


Nikolay M.   (2003-09-18 14:57:00) [6]


> Как это корректно делать, когда работают другие пользователи?

AFAIK, никак. Сначала - отсоединить всех пользователей.


Наверх

Титульная страница Поиск, карта сайта Написать письмо