Я мигрирую в Postgresql, но столкнулся с проблемой.
«Уловка», которую я использую с SQL Server, заключается в том, чтобы всегда входить в систему с использованием одного пользователя (обычно sa), и я пишу имя_программы в соединении с базой данных, чтобы проверить количество зарегистрированных пользователей в приложении. Каждый раз, когда я делаю соединение БД для UserX, я устанавливаю имя_программы в соединении как «MyApp_UserX». Таким образом, с помощью запроса, подобного следующему, я могу подсчитать, сколько пользователей подключено к моему приложению. Я использую это для проверки лицензии, и это очень надежно на сервере SQL.
select count(sp.loginame) as CNT
from Master.dbo.sysprocesses sp
join Master.dbo.sysdatabases sd on sp.dbid = sd.dbid
where sd.name = MYDATABASE and sp.program_name like 'MyApp%'
Теперь Postgresql не позволяет мне в соединении указывать строку наподобие program_name. Что вы можете предложить?
Для пользователей Delphi: примечание: я использую unidac, переходя с SDAC. в SDAC у меня был TMSConnection.ApplicationName, но нет аналога Postgresql.