Esse erro pode acontecer tanto em runtime como em design-time, com qualquer tipo de componente: DBX, ADO e assim por diante. É mais comum que aconteça em tempo de design em um windows de 64 bit.
Em alguns casos onde essa mensagem de erro aparece é porque o arquivo não existe ou está em uma pasta que o Delphi ou o seu aplicativo não tem permissão de acesso.
Na grande maioria dos casos o erro ocorre apenas em design-time e nunca em runtime. Se esse é o seu caso então provavelmente a culpa é do windows de 64 bit, mais especificamente o fato de o Delphi estar instalado na pasta "Arquivos de Programas (x86)". Explicando, o driver de conexão ao oracle não suporta caminhos contendo parênteses "()", esses que tem no "(x86)". Ele não consegue encontrar nem o driver de conexão nem o arquivo tsnames.ora por causa desses parênteses. Instale o Delphi em uma pasta tipo "Arquivos de Programas" "normal" ou até mesmo em uma pasta direto na raiz, como c:\Delphi.
Se o Delphi já está instalado nesta pasta problemática ainda assim é possível copiar toda a pasta do RAD STUDIO (geralmente C:\Arquivos de programas (x86)\Embarcadero\RAD Studio) para uma pasta qualquer, tipo c:\rad studio, e execute o Delphi dali. (ele se encontra na pasta 7.0\bin se for o 2010 ou 8.0\bin se for o XE, é o arquivo bds.exe).
Ele vai executar normalmente, mesmo no local "errado", já que tudo que ele precisa em matéria de bibliotecas está no registro e ele consegue encontrar no diretório original, e isso não impedirá de que uma conexão DBX com o oracle funcione normalmente. Vai funcionar mesmo em design-time, e compilar sua aplicação normalmente.
Have fun ;)


Bom dia,
ResponderExcluirVocê pode resolver este problema criando em variáveis de ambiente no windows a variável de nome TNS_ADMIN apontando para o diretório onde encontra-se o tnsnames.ora.
TNS_ADMIN = C:\caminho dos arquivos
AdilsonD
Também dá o mesmo problema se sua aplicação estiver localizada em uma pasta com ( ou )... Não necessariamente estre problema acontece na IDE do delphi
ResponderExcluirBom dia Adilson, não sabia desse esquema da variavel de ambiente, bom saber. Só alterava o tnsnames.ora mesmo.
ResponderExcluirAdriano, bom dia. É interessante essa observação. Qualquer aplicação que acesse o oracle e que estiver em um caminho ou pasta com parênteses dá esse problema então, tipo na Program Files (x86).
Mas quando você vê esse erro acontecendo no Delphi, na IDE, que está no Program Files (x86) e não acontece no seu executavel rodando sozinho simplesmente porque você colocou ele numa pasta com nome "normal" é uma situação bem bizarra e bem difícil de descobrir onde está o problema: você vê o erro acontecendo no Delphi em design-time e não acontecendo na sua aplicação em runtime, quando na verdade a maioria das vezes agente espera o contrário.
Eu quis resolver a situação no Delphi, acredito que assim (e compilando seu EXE numa pasta sem () ) você resolve o problema.
Vitor testei a solução de AdilsonD e funcionou perfeitamente, mesmo com o delphi no dir (x86), sem ser necessário a troca do dir do RAD.
ResponderExcluirMinha instação eh: Oracle 11G, delphi 2010 e client do oracle.
Apanhei ateh achar este post e resolver o problema!
Parabéns a vocês por compartilharem conhecimento.
Abraços.