Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.02.2012, 12:41
Аватар для littlePCgenius
littlePCgenius littlePCgenius вне форума
Прохожий
 
Регистрация: 01.02.2012
Адрес: Магнитогорск
Сообщения: 11
Репутация: 10
Вопрос как узнать запущена ли программа

доброго времени суток!
проблема такая...есть программа с базами данных....нужно осуществить переиндексацию баз...программа работает в многопользовательском режиме - у нескольких пользователей. естесно переиндексацию можно выполнять только в эксклюзивном режиме. как узнать запущена ли программа у каких-нибудь пользователей?
т.е. при нажатии "Переиндексировать базу данных" осуществляется проверка запущена ли уже копия программы, если да, то выдает сообщение, если нет - то проводит переиндексацию. если в момент переиндексации другой пользователь открывает программу, выходит сообщение о том, что в данный момент идет переиндексация.
Ответить с цитированием
  #2  
Старый 28.02.2012, 13:13
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

смотря что за база данных, подход может быть различным. серверная СУБД: kick all users, listener disable. файловая БД - exclusive mode.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 28.02.2012, 13:14
Аватар для littlePCgenius
littlePCgenius littlePCgenius вне форума
Прохожий
 
Регистрация: 01.02.2012
Адрес: Магнитогорск
Сообщения: 11
Репутация: 10
По умолчанию

база - 2 файла dbf, подцепленные к программе посредством ini файла
Ответить с цитированием
  #4  
Старый 28.02.2012, 13:18
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

ну наверняка они на сервере? shared folders to close == exclusive mode
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #5  
Старый 28.02.2012, 13:28
Аватар для littlePCgenius
littlePCgenius littlePCgenius вне форума
Прохожий
 
Регистрация: 01.02.2012
Адрес: Магнитогорск
Сообщения: 11
Репутация: 10
По умолчанию

не совсем это имела ввиду....мне же надо сначала проверку пустить, открыта ли программа еще у кого....я думала делать CreateFile при каждом запуске программы....и этот файл нельзя будет удалить пока открыта программа....т.е. сделать проверку существования таких файлов...и если они есть - вывести окно о невозможности перехода в эксклюзивный режим, если же нет, то тогда произвести переиндексацию...
базы да, на сервере
Ответить с цитированием
  #6  
Старый 28.02.2012, 15:34
Аватар для littlePCgenius
littlePCgenius littlePCgenius вне форума
Прохожий
 
Регистрация: 01.02.2012
Адрес: Магнитогорск
Сообщения: 11
Репутация: 10
Радость

если кому-то будет интересно...вышла из положения следующим путем:

в FormCreate занесла
Код:
 FileHandle:=FileCreate('semafor.txt'); //создала файл
 FileClose(FileHandle);//закрыла
 FileHandle:=FileOpen('semafor.txt', fmShareDenyNone);//открыла файл в многопользовательском режиме
на кнопку "Переиндексация":
Код:
FileClose(FileHandle);
if DeleteFile('semafor.txt') then
begin

//переиндексация

 FileHandle:=FileCreate('semafor.txt'); 
 FileClose(FileHandle);
 FileHandle:=FileOpen('semafor.txt', fmShareDenyNone);
ShowMessage('Переиндексация успешно завершена!');
 end
else
ShowMessage('Переиндексация невозможна!');
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:35.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter