Como identificar em qual banco de dados está conectado

Versão para impressãoEnviar para amigoVersão PDF

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.
    

0
Ainda não votado
Sua avaliação: Nenhum
Tags:

RE:Como obter o nome do banco de dados

Obrigada César! Um abraço, Fernanda Araújo

Como obter o nome do banco de dados

Olá Cesar, usei o seu SQL para obter o nome do banco de dados ao qual estou conectada e obtive uma lista de 8 nomes de banco de dados. Uso a versão 10.00.UC5. Como faço para obter somente o nome do banco ao qual estou conectada no momento? O select foi: select db.name from sysmaster:sysdatabases db, systables t where t.tabid = 1 and trunc(db.partnum/1048576) = trunc(t.partnum / 1048576) Desde já, agradeço. Fernanda Araujo.

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

O conteúdo deste campo é privado não será exibido ao público.
  • Endereços de páginas de internet e emails viram links automaticamente.
  • Você pode usar tags BBCode no texto.
  • Tags HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>

Mais informações sobre as opções de formatação

CAPTCHA
Este teste é para bloquear programas automatizados e previnir spams
CAPTCHA de Imagem
Digite o texto exibido na imagem.