Como identificar em qual banco de dados está conectado
Grandes parte das aplicações têm seus selects escritos dinâmicamente e em muitas delas é preciso trabalhar com mais de um banco de dados.
Nestes casos é comum a necessidade de identificar em qual banco de dados está sendo executado aquela sessão.
Claro que teoricamente já se tem esta informação quando se vai conectar no banco de dados, mas estiver utilizando Stored Procedures ou aplicações que não foram preparadas para ter esta informação facilmente disponível, será um problema.
Até a versão 11.50 era preciso dar um "jeitinho" para resolver isso, fazendo um select "dummy" utilizando o partnum + tabela sysdatabases.
Porém agora há uma nova opção que é um novo parametro do comando dbinfo, o parâmetro "dbname".
Veja o exemplo:
## Comando executado via dbaccess conectando no banco de dados ## chamado "dbcim" -- Para a versao 11.50 select dbinfo('dbname') from sysmaster:sysdual; (expression) dbcim 1 row(s) retrieved. -- Para versão anterior select db.name from sysmaster:sysdatabases db, systables t where t.tabid = 1 and db.partnum = t.partnum name dbcim 1 row(s) retrieved.
- 2721 leituras
RE:Como obter o nome do banco de dados
Como obter o nome do banco de dados
RE:Como obter o nome do banco de dados
Oi Fernanda,
Realmente, o select que estava no artigo estava errado, me desculpe!!!
Lembro que quando eu publiquei o artigo, estava testando os SQLs, fiz um teste com o trunc com a divisão e por um momento achei que ele funcionava, então deixei no rascunho, depois que vi que não precisa deles , achei que havia copiado o select correto no artigo...
Enfim. a versão correta é mais simples do que estava publicado, basta tirar o trunc e a divisão. Confira no artigo, já corrigido.
Obrigado pelo aviso!
César
Comentar