Суть задачи такова.
У меня в БД есть таблица где по русски записана основная и дополнительная информация о пользователях системы (БД). Основным, ключевым, полем является поле USRLOGIN содержащее имя пользователя под которым он регистрируется на сервере InterBase.
Чтобы получить данные о подключённых в данный момент пользователях и при этом отображать в списке не логины, а реальные имена, делаю вот такой запрос:
Код: Выделить всё
select T.TMP$TIMESTAMP, U.USRNAME, T.TMP$USER_IP_ADDR, T.TMP$USER_HOST, T.TMP$STATE
from TMP$ATTACHMENTS T INNER JOIN USR U ON (T.TMP$USER = U.USRLOGIN)
Код: Выделить всё
procedure TBaseInfo.ConnectedUsersCalcFields(DataSet: TDataSet);
begin
if ConnectedUsers.FieldByName('TMP$STATE').AsString = 'ACTIVE' then
ConnectedUsersStatus.Value := 'Активен';
if ConnectedUsers.FieldByName('TMP$STATE').AsString = 'CONNECTED' then
ConnectedUsersStatus.Value := 'Подключён';
end;
Подскажите в чём моя ошибка. Уже вроде всё перепробовал - никак. Или может решение где-то на поверхности, но я его в упор не вижу?