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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.10.2012, 06:50
NewCoder NewCoder вне форума
Прохожий
 
Регистрация: 16.02.2012
Сообщения: 26
Репутация: 10
По умолчанию Кто в сети

Здравствуйте, используется Delphi+Access. Задача отследить администратору пользователей кто сейчас в базе (тобишь у кого запущено приложение). Отследить нужно через это же приложение. Я создал в базе таблицу, в которую при заходе нового пользователя, программа вносит его в табл, и соответственно удаляет при выходе. Но бывает возникает проблема когда допустим ошибка приложения его закрывает и соответственно не вносит изменения в базу о том что пользователь вышел. ВОПРОС: можно ли как то по другому организовать в Access данную функцию?
Ответить с цитированием
  #2  
Старый 23.10.2012, 08:41
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Если развить твою мысль с таблицей активных пользователей, то можно сделать так: вносить запись не только при входе, но и обновлять ее время от времени (и в табличке хранить время последнего обновления). Зная текущее время и период обновления записей в таблице активных пользователей можно однозначно понять работает тользователь или отвалился по ошибке.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
Этот пользователь сказал Спасибо Aristarh Dark за это полезное сообщение:
NewCoder (23.10.2012)
  #3  
Старый 23.10.2012, 09:54
NewCoder NewCoder вне форума
Прохожий
 
Регистрация: 16.02.2012
Сообщения: 26
Репутация: 10
По умолчанию

Дело в том, что программа не должна впускать пользователей под тем же логином и паролем одновременно, и получается если он вошол и "не вышел", то потом не сможет зайти. Как допустим в той же 1С в файлов варианте отслеживается наличае или отсутствие пользователей...
Т.е. предложенный вами вариант не пройдёт.
Ответить с цитированием
  #4  
Старый 23.10.2012, 10:01
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Ну как вариант смотреть заняты ли порты на сервене.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #5  
Старый 23.10.2012, 10:07
NewCoder NewCoder вне форума
Прохожий
 
Регистрация: 16.02.2012
Сообщения: 26
Репутация: 10
По умолчанию

а это как?
Ответить с цитированием
  #6  
Старый 23.10.2012, 10:14
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Цитата:
Сообщение от NewCoder
Дело в том, что программа не должна впускать пользователей под тем же логином и паролем одновременно, и получается если он вошол и "не вышел", то потом не сможет зайти. Как допустим в той же 1С в файлов варианте отслеживается наличае или отсутствие пользователей...
Т.е. предложенный вами вариант не пройдёт.
При входе проверяй таблицу пользователей, если такой пользователь есть и время от последнего обновления активности меньше периода обновления активности - значит пользователь в базе, если больше - значит отвалился по ошибке и не почистил за собой.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
Этот пользователь сказал Спасибо Aristarh Dark за это полезное сообщение:
NewCoder (23.10.2012)
  #7  
Старый 23.10.2012, 10:27
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

пользователь снова сможет войти по истечении таймаута. как раз за это время он сможет успеть написать объяснительную начальству почему вызвал крэш программы)
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #8  
Старый 23.10.2012, 10:42
NewCoder NewCoder вне форума
Прохожий
 
Регистрация: 16.02.2012
Сообщения: 26
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aristarh Dark
При входе проверяй таблицу пользователей, если такой пользователь есть и время от последнего обновления активности меньше периода обновления активности - значит пользователь в базе, если больше - значит отвалился по ошибке и не почистил за собой.
О, то, что надо, спасибо. У меня была мысль... но от постоянного прозвона, сеть не забьется, допустим если пользователей 1000?
Ответить с цитированием
  #9  
Старый 23.10.2012, 11:20
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

1000 пользователей на акцессовскую базу???? А вы, батенька, знаете толк в извращениях.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #10  
Старый 23.10.2012, 13:00
NewCoder NewCoder вне форума
Прохожий
 
Регистрация: 16.02.2012
Сообщения: 26
Репутация: 10
По умолчанию

Сейчас Access, но программа будет переводиться на MySQl, так как правильней в такой ситуации поступить?
Ответить с цитированием
  #11  
Старый 23.10.2012, 13:12
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

У мускула скорее всего есть методика определения подключенных пользователей.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #12  
Старый 23.10.2012, 13:59
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Должны быть системные таблицы, в оракле, например, таблица V$SESSION
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #13  
Старый 23.10.2012, 14:04
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Должны быть системные таблицы, в оракле, например, таблица V$SESSION
В MSSQL таблица "sysprocesses"
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter