Informix Logo


Как узнать имя текущей базы данных для сессии, используя SQL-запрос?

 Узнать имена всех открытых сессией баз данных можно, выполнив следующий SQL оператор:

SELECT odb_dbname
FROM sysmaster:sysopendb
WHERE odb_sessionid = DBINFO ('sessionid');

Если вы хотите узнать, какая база данных является текущей, модифицируйте запрос следующим образом:

SELECT odb_dbname
FROM sysmaster:sysopendb
WHERE odb_sessionid = DBINFO ('sessionid')
AND odb_iscurrent = 'Y';

Для более ранних версий проблема состоит в том, что функция DBINFO не поддерживает параметр 'sessionid'. В этом случае, узнать текущую базу данных для сессии можно довольно элегантным способом:

select name
from sysmaster:sysdatabases A,systables B
where A.partnum = B.partnum and
B.tabname = "systables"

Informix Magazine Russian Edition


Украинская баннерная сеть
 

[Home]

Сайт поддерживается группой пользователей Информикс на Украине.

Hosted by NO-more.