我正在迁移到Postgresql,但我面临一个问题。postgresql相当于SQL Server sysprocesses登录名和程序名
我与SQL Server一起使用的“技巧”是始终使用单个用户(通常为sa)登录,并在数据库连接中写入program_name以检查应用程序中当前记录的用户数。每次我为UserX进行数据库连接时,我都将连接中的program_name设置为“MyApp_UserX”。通过这样的查询,我可以统计有多少用户连接到我的应用程序。我用它来进行许可证检查,并且它在sql server中非常可靠。
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的等价物。
感谢您的宝贵信息,真正9.0包含完全相同的功能,这将是巨大的,有它。 – LaBracca 2010-07-02 15:06:52