Page 1 of 1
Oracle 10.2 problem to connect
Posted: 07.07.2011, 21:43
by Ðerek wildstar
Hello everybody, I'm having problems to connect with oracle database on my work. I will go straight to the question
My TNSNAMES.ORA is:
Code: Select all
ORAPROD.WORLD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 191.168.1.202)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORAPROD)
)
)
ORADES.WORLD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 191.168.1.204)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORAPROD)
)
)
On Delphi I have only a form with one ZConnection component and the properties are:
Code: Select all
object ZConnection1: TZConnection
Protocol = 'oracle'
HostName = '191.168.1.204'
Database = 'dbrhm'
User = 'dbrhm'
Password = '123456'
SQLHourGlass = True
Left = 6
Top = 6
end
With these configurations when I try to connect (connect command) I receive the following message:
Code: Select all
---------------------------
Error
---------------------------
SQL Error: ORA-12154: TNS:não foi possível resolver o identificador de conexão especificado
---------------------------
OK Details >>
---------------------------
The image of this error message is attached.
I have PLSQL Developer and there i can connect perfectly with oracle. What i must do now?
Posted: 12.08.2011, 12:53
by amarildolacerda
Remove IP server. TZConnection use TNSNAMES to connect.
Like this:
object ZConnection1: TZConnection
Protocol = 'oracle'
Database = 'dbrhm'
User = 'dbrhm'
Password = '123456'
end
Posted: 12.08.2011, 16:12
by Ðerek wildstar
Pelo seu nome você deve entender português...
A solução que você apresentou eu já havia tentado, o erro está no próprio zeos.
Existe um procedimento (o qual não recordo agora) que faz uso de uma função contida em OCI.dll e serve para conectar ao banco de dados. O que acontece é que a classe que implementa o TZconnection do Oracle, no método Open, troca os parâmetros desta função ao chamá-la, de forma que para funcionar eu preciso setar a propriedade database = ORADES.WORLD, e isso pra mim não faz muito sentido.
Falei com Mark (o criador do Zeos) pelo ICQ e ele disse que era assim, mesmo, contudo, acho que a barreira da linguagem me impediu de explicar pra ele melhor.
O interessante é que ninguém tem reclamado disso. Ou quase ninguém usa o Zeos pra conectar com o Oracle, ou realmente está certo. Se você puder testar, por favor tenta. Se quiser mais detalhes me fala. Obrigado!
Posted: 15.08.2011, 02:47
by amarildolacerda
O meu TNSNAMES.ORA.... esta assim:
store =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.80.172)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 5)
)
)
)
no Forms:
object ZConnection1: TZConnection
Connected = False
Protocol = 'oracle'
Database = 'store'
User = 'xxx'
Password = 'xxx'
end
Com esta configuração eu consigo conectar e fazer as transações com Oracle 10.g (XE)
Posted: 15.08.2011, 03:00
by amarildolacerda
Eu tinha uma instalação completa no notebook... e não conseguia conectar...
Removi tudo, e depois baixe o "InstantClient"...
http://www.oracle.com/technetwork/datab ... 85727.html
Depois de algumas pesquisas encontrei um site que indicava como instalar o Instante Client....
Aproveitando, eu postei hoje código que permite fazer uso de StoredProc e Functions... Esta no Forum
http://zeos.firmos.at/viewtopic.php?t=3264
Posted: 15.08.2011, 03:44
by Guest
I could not help this problem, because my database connection is always a problem.
Posted: 15.08.2011, 14:15
by Ðerek wildstar
Exatamente... Do jeito que você descreveu funciona. No meu caso eu preciso colocar ORADES.WORLD configurado em DATABASE e deixar host em branco. Mas isso não parece ser intuitivo.
Por exemplo, intuitivamente, eu não usaria o TNS para conectar e usaria os "componentes" da string TNS para configurar o TZConnection. Acho que isso deveria funcionar, mas não funciona.
amarildolacerda wrote:O meu TNSNAMES.ORA.... esta assim:
store =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.80.172)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 5)
)
)
)
no Forms:
object ZConnection1: TZConnection
Connected = False
Protocol = 'oracle'
Database = 'store'
User = 'xxx'
Password = 'xxx'
end
Com esta configuração eu consigo conectar e fazer as transações com Oracle 10.g (XE)
Posted: 15.08.2011, 14:16
by Ðerek wildstar
Hello! Can you explain better?
Mudrick wrote:I could not help this problem, because my database connection is always a problem.
Posted: 15.08.2011, 14:22
by Ðerek wildstar
O instant Client, é sempre necessário no computador que vai fazer acesso ao oracle, porque ele além de outros dlls contém o principal dll de todos, OCI.DLL. No entanto eu não aconselho usar o instalador do Instant Client mas sim suas versões zipadas que precisam ser manualmente configuradas:
http://www.oracle.com/technetwork/datab ... 97480.html
Com esta versão você só coloca o necessário no computador e não um monte de bobagens que o instalador do IC instala. Além disso, o instalador do IC faz uma zona com registro do Windows criando uma confusão de Oracle Homes que atrapalha. Meu conselho é: use o IC que eu indiquei acima configura apenas as variaveis de ambiente ORACLE_HOME, ORACLE_BASE, TNS_ADMIN e NLS_LANG. Não mexa no registro do Windows! Funciona perfeitamente.
Sobre sua implementação, uma pergunta: o zeos sozinho não dava suporte a storedprocedures para oracle??