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

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

Как остановить InterBase Sever [D6, IB6.x]


ali_tash ©   (2005-07-02 14:22:00) 

Мне нужно остановить Interbase Server, для того чтобы записать новую версию дллки(UDF) - старую сервер использует и не даёт это сделать.

пытаюсь так
     //Пытаемся скопировать новую версию UDF
     WinExec('net stop "InterBase Guardian"',SW_HIDE);
     WinExec('net stop "InterBase Server"',SW_HIDE);
     Sleep(2000);
     if not ExtractRes('dll','UDF',temp_path+'MY_UDF.dll') then
       ShowMessage('ОШИБКА !'+#13+'Файл UDF MY_UDF.dll не извлечён');
     if CopyFile(PChar(temp_path+'MY_UDF.dll'),
                 'C:\Program Files\Borland\InterBase\Udf\MY_UDF.dll',
                 False)=False then
        begin
        MessageDlg('Ошибка копирования файла MY_UDF.dll'
                   +#13+'в C:\Program Files\Borland\InterBase\Udf\'
                   +#13+'перезагрузите компьютер и запустите обновление снова'
                   +#13+':Temp каталог = '+temp_path, mtError, mbOKCancel,0);
        Halt;
        end;
     WinExec('net start "InterBase Guardian"',SW_HIDE);
     Sleep(2000);
И далее подключаюсь к серверу.
Но этот способ кажется мне не недёжен т.к.
Я не знаю остановлен ли сервер и запущен ли потом.

Как можно узнать что процесс запущен или остановлен
и правильно ли я остановливаю InterBase ?


WondeRu   (2005-07-04 10:34:00) [1]

kaif ©   (04.07.05 6:00) [2]
Это так, в качестве идеи...

у меня не прокатывало такое...


kaif   (2005-07-04 06:00:00) [2]

Может быть не надо останавливать сервер? Может быть достаточно будет сделать Database Shutdown, чтобы вышибить всех пользователей? Если нет соединений, то udf можно будет спокойно удалить. Это так, в качестве идеи...


DSKalugin   (2005-07-02 15:37:00) [3]

запиши все эти операции во внешний скрипт
*.cmd *.bat *.jc *.sh ... и т.д. по вкусу
и тогда все операции в программе будут сводиться к следующему
1 - отключение от базы
2 - WinExec('ReaplaceUDF.cmd',SW_Normal);
3 - подключение к базе


Наверх

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