Сообщение от
jopagames3
Цитата:
Сообщение от
Дуд
UserSession.RESET;
UserSession.INIT;
UserSession."Session ID" := Session."Connection ID";
IF NOT UserSession.GET(Session."Connection ID") THEN
UserSession.INSERT(TRUE);
UserSession."User ID" := User_ID;
UserSession."Location Code" := Locations.Code;
А если без стеба и по делу, то так делать вааще нельзя.
Поскольку первичный ключ таблицы - Connection ID, который назначает сессии непосредственно скуль.
Т.е. он при обрыве связи, или когда юзера вышибают с терминального сервера может запросто присвоить такой же Connection ID другому, следующему подключившемуся к SQL пользователю (с другим userid в Навике)
При обрыве связи триггер logout кодеюнита 1, ессно, не отрабатывает и запись в таблице UserSession остается.
Отсюда, думаю, и ошибки. Пользователь читает не свои настройки, а настройки предыдущего зависшего бедолаги.
Но раз исправил, так исправил. Главное - работает! :-)