Olá Andre!

Meu TNSNAMES.ORA está assim:

MYORA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dev.orcl.com)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = ORCL)
    )
  )

Na aplicação eu tenho dois componentes de conexão que são configurados 
assim:

Componente1:

Database = MYORA
HostName = dev.orcl.com
Password = mypass
Port = 1521
Protocol = oracle
User = user1

Quando eu abro a aplicação estabeleço a conexão com o servidor com sucesso:

Component1.Connect;

O segundo componente de conexão está configurado assim:

Componente2:

Database = MYORA
HostName = dev.orcl.com
Password = mypass2
Port = 1521
Protocol = oracle
User = user2

A princípio essa conexão está fechada. Lá pelas tantas, na aplicação, 
quando o
usuário abre uma determinada tela, em tempo de execução, a aplicação 
tenta abrir
essa segunda conexão, sendo que a anterior está aberta e o seguinte erro 
é disparado:

OCI_ERROR: ORA-12154: TNS:não foi possível resolver o identificador de
conexão especificado

Grato,

Josimar

Andre Santos escreveu:
> Josimar
>
> Mande aqui as "strings de conexão" que você está utilizando na aplicação.
> Com isso, talvez, alguém poderá ajudá-lo.
>
> [ ]
>
> André
>
> Em 29 de abril de 2011 09:10, Josimar Zimermann 
> <[email protected]>escreveu:
>
>   
>> Olá Paulo!
>>
>> É isso mesmo que estou querendo fazer!
>>
>> Para conectar estou usando os componentes da Zeos Lib.
>>
>> No componente eu informo na propriedade Database o nome da string de
>> conexão
>> configurada no TNSNAMES.ORA. Exemplo:
>>
>> CONNSTR =
>> (DESCRIPTION =
>> (ADDRESS_LIST =
>> (ADDRESS = (PROTOCOL = TCP)(HOST = devel.oracle.com)(PORT = 1521))
>> )
>> (CONNECT_DATA =
>> (SERVICE_NAME = ORCL)
>> )
>> )
>>
>> Portanto, na propriedade Database do componente eu informo o valor CONNSTR,
>> mudando apenas as informações de usuário e senha de acordo com o SCHEMA
>> onde
>> desejo conectar.
>> Quando tento abrir uma segunda conexão, o erro ORA-12154 é disparado.
>>
>> Não sei porque, mas de alguma forma o componente lê as informações do
>> TNSNAMES.ORA.
>>
>> Atenciosamente,
>>
>> Josimar
>>
>> Paulo H. P. da Silva escreveu:
>>
>>     
>>> Josimar,
>>>
>>> Não tenho experiência no desenvolvimento de aplicações Delphi com BD
>>> Oracle, mas isso não tem cara de ser configuração no TNSNAMES.
>>>
>>> Pelo que entendi a situação é: Você acessa uma instância Oracle, a qual
>>> possui diversos schemas. Pelo Delphi, você faz uma conexão com a
>>> instância, conectando no schema X. Mais para frente, quer abrir outra
>>> conexão, conectando no schema Y, e essa última está dando erro.
>>>
>>> Sendo isso, e estando o schema X e Y no *mesmo banco*, a única coisa que
>>> você precisa trocar no comando de conexão que foi usado para conectar no
>>> schema X, é o usuário e senha.
>>>
>>> Por exemplo:
>>> Se para conectar no schema X vc usou: "sqlplus
>>> <schema_x>/<senha_schema_x>@<nome_serviço_tnsnames>"
>>> Pra conectar no schema Y vc usaria: "sqlplus
>>> <schema_y>/<senha_schema_y>@<nome_serviço_tnsnames>"
>>>
>>> Eu sei que você não usou sqlplus, foi só um exemplo. É que não lembro
>>> mais nada de conexões via linguagens de programação, faz muito tempo que
>>> não mexo com isso.
>>>
>>> Resumindo, se você conecta no schema X e o Y está no mesmo banco que
>>> ele, bastaria você repetir os comandos de conexão usados para X,
>>> alterando só o nome do schema e a senha para Y. Não teria que alterar
>>> nada no TNSNAMES.
>>>
>>> Pode até ser outro problema, mas não tem que alterar nada no TNSNAMES,
>>> pois você já conecta no schema X com sucesso.
>>>
>>> Atenciosamente,
>>> -----------------------------
>>> Paulo Henrique P. da Silva
>>>
>>>       

Responder a