Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Error: ORA-12154: TNS:could not resolve the connect identifier specified. DelphiXE5 (https://www.clubdelphi.com/foros/showthread.php?t=87617)

kaliman_jr 30-01-2015 21:32:59

Error: ORA-12154: TNS:could not resolve the connect identifier specified. DelphiXE5
 
Buena tarde a todos.

Recurro a la comunidad en espera de que me puedan orientar sobre un problema que tengo al intentar conectarme desde Delphi XE5 Enterprise con dbExpress a una base de datos en Oracle.
Al principio el error que me salía era sobre una librería que no encontraba, así que descargué el cliente de Oracle, instantclient_12_1 del cual únicamente pasé el contenido de las librerías dentro del directorio de windows y con ello se resolvió este primer problema, sin embargo, ahora me aparece otro el cual dice "ORA-12154: TNS:could not resolve the connect identifier specified.", por lo que he investigado, al parecer se trata de que no encuentra el archivo tnsnames.ora, me di cuenta de que efectivamente este archivo no existía y decidí crearlo de la siguiente forma
Código PHP:

XE =
   (
DESCRIPTION =
    (
ADDRESS = (PROTOCOL TCP)(HOST "aqui pongo la ip del servidor")(PORT "número de puerto"))
    (
CONNECT_DATA =
      (
SERVER DEDICATED)
      (
SID "Nombre de la base de datos"
    )
  ) 

Luego, en las variables del sistema agregué una entrada llamada: TNS_ADMIN indicando la ruta en donde se encuentra el archivo.

En las propiedades de mi componente TSQLConnection tengo los sig. valores:
Código PHP:

DriverUnit=Data.DBXOracle
DriverPackageLoader
=TDBXDynalinkDriverLoader,DBXCommonDriver190.bpl
DriverAssemblyLoader
=Borland.Data.TDBXDynalinkDriverLoader,Borland.Data.DbxCommonDriver,Version=19.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
MetaDataPackageLoader
=TDBXOracleMetaDataCommandFactory,DbxOracleDriver190.bpl
MetaDataAssemblyLoader
=Borland.Data.TDBXOracleMetaDataCommandFactory,Borland.Data.DbxOracleDriver,Version=19.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
GetDriverFunc
=getSQLDriverORACLE
LibraryName
=dbxora.dll
LibraryNameOsx
=libsqlora.dylib
VendorLib
=oci.dll
VendorLibWin64
=oci.dll
VendorLibOsx
=libociei.dylib
Database
=("Nombre de la base de datos")
User_Name=("usuario de la conexión")
Password=("password de la conexión")
MaxBlobSize=-1
LocaleCode
=0000
IsolationLevel
=ReadCommitted
RowsetSize
=20
OSAuthentication
=False
MultipleTransactions
=False
TrimChar
=False
BlobSize
=-1
ErrorResourceFile
=
OS Authentication=False
Multiple Transaction
=False
Trim Char
=False
Decimal Separator
=.
HostName=("ip del servidor : puerto del servidor"

He intentado conectarme nuevamente pero sin éxito, el mensaje que me sale es el mismo.

Quisiera saber si a alguno de ustedes les ha pasado antes o qué tendría que hacer para poder conectarme.

Saludos

Casimiro Notevi 30-01-2015 22:10:05

Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración :)

Recuerda poner los tags al código fuente, ejemplo:



Gracias :)

ElKurgan 31-01-2015 01:08:21

Cita:

Empezado por kaliman_jr (Mensaje 488331)
Código PHP:

XE =
   (
DESCRIPTION =
    (
ADDRESS = (PROTOCOL TCP)(HOST "aqui pongo la ip del servidor")(PORT "número de puerto"))
    (
CONNECT_DATA =
      (
SERVER DEDICATED)
      (
SID "Nombre de la base de datos"
    )
  ) 

Luego, en las variables del sistema agregué una entrada llamada: TNS_ADMIN indicando la ruta en donde se encuentra el archivo.

Creo que en las propiedades, donde dice "Database" tienes que poner el descriptor que has creado en el TNSNAMES.ORA. Es decir, si dices que el descriptor es "XE=..." tienes que poner "Database=XE"

Saludos

kaliman_jr 31-01-2015 21:42:14

1 Archivos Adjunto(s)
Muchas gracias por responder ElKurgan.

Hice el cambio como me lo sugerías, pero desafortunadamente continua el problema.
Quisiera saber si hay alguna forma en que delphi no dependa de la lectura de este archivo y solo tome en cuenta las propiedades de la conexión, o si se puede armar de alguna otra forma la cadena de conexión.

Quiero comentar que también he intentado incluso conectarme con odbc, aunque haciéndolo de esa manera me genera un error diferente el cual no entiendo muy bien.

Adjunto la imagen de dicho error.

Saludos.

ElKurgan 01-02-2015 12:22:42

¿Tienes instalado el Oracle en tu PC?
¿Están arrancados los listener adecuados?

La librería Oci.dll que provee Oracle para conectar con sus bases de datos funciona con los parámetros que le proporciona el TNSNames por defecto.

En fin, sin más detalles poco podemos hacer por ayudarte

Saludos


La franja horaria es GMT +2. Ahora son las 12:12:07.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi