我正在遷移到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