Hola a tod@s, soy nuevo por aquí por lo que aprovecho para saludaros
¿Podeis decirme como se configura una conexión (TZConnection) para trabajar con Oracle?
Utilizo D-7, Oracle 10g Express y Zeos 6.6.4-stable
Gracias de antemano
salvica
Publicado:
Mar Ene 20, 2009 7:36 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Oracle y ZeosDBO
Anuncios
salvica escribió:
Hola a tod@s, soy nuevo por aquí por lo que aprovecho para saludaros
¿Podeis decirme como se configura una conexión (TZConnection) para trabajar con Oracle?
Utilizo D-7, Oracle 10g Express y Zeos 6.6.4-stable
Gracias de antemano
salvica
Hola Salvica, a continuación te mostramos un enlace para que puedas descargar "AjpdSoft Monitor Espacio Oracle" que utiliza TZConnection para conectar mediante Delphi 6 y ZeosDBO 6.5.1 a Oracle 10g:
Aunque las versiones no son idénticas a las que tú utilizas, son muy parecidas.
Esta aplicación realiza una conexión a Oracle 10g y ejecuta algunas consultas SQL mostrando el resultado en un TDBGrid mediante TDatasource y TZReadOnlyQuery.
Para conectar el TZConnection con Oracle tienes que iniciar las siguientes propiedades, con el siguiente código (más o menos):
Donde "conexionDB" es un componente de tipo TZConnection.
Publicado:
Jue Ene 22, 2009 2:10 am
salvica Excelente usuario
Registrado: Jan 20, 2009 Mensajes: 16
Asunto:
Hola alonsojpd, gracias por responder.
He bajado el proyecto que indicas y nada sigo sin poder conectarme
El mensaje en cuestión que me da es:
SQL Error: ORA-12154: TNS:no se ha podido resolver el identificador de conexión especificado
He probado a poner de todoXE, tnsnames.ora (con el path completo y sin él), las IP de todas las formas en el TConnection pero siempre consigo el mensaje anterior (incluso me creé una variable de entorno)
Por si sirve de algo, los valores de configuración de la Base de Datos son:
Código:
[size=18]Versión[/size]
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
[size=18]Base de Datos[/size]
NAME XE
CREATED 24/12/08 14:57:47
RESETLOGS_TIME 24/12/08 14:57:50
PRIOR_RESETLOGS_CHANGE# 1
PRIOR_RESETLOGS_TIME 07/02/06
LOG_MODE NOARCHIVELOG
CHECKPOINT_CHANGE# 1492250
ARCHIVE_CHANGE# 1451745
OPEN_RESETLOGS NOT ALLOWED
VERSION_TIME 24/12/08 14:57:47
OPEN_MODE READ WRITE
PROTECTION_MODE MAXIMUM PERFORMANCE
PROTECTION_LEVEL UNPROTECTED
REMOTE_ARCHIVE ENABLED
DATABASE_ROLE PRIMARY
ARCHIVELOG_CHANGE# 213419
SWITCHOVER_STATUS SESSIONS ACTIVE
DATAGUARD_BROKER DISABLED
GUARD_STATUS NONE
FORCE_LOGGING NO
Agradecido por tu tiempo
salvica
Publicado:
Jue Ene 22, 2009 1:19 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto:
salvica escribió:
Hola alonsojpd, gracias por responder.
He bajado el proyecto que indicas y nada sigo sin poder conectarme
El mensaje en cuestión que me da es:
SQL Error: ORA-12154: TNS:no se ha podido resolver el identificador de conexión especificado
He probado a pone...
¿Qué puerto estás poniendo? para el Oracle XE suele ser el 1521. Asegúrate de esto y nos cuentas. En la aplicación que te hemos indicado el puerto que aparece por defecto es el 1021, cámbialo a 1521.
Publicado:
Jue Ene 22, 2009 4:43 pm
salvica Excelente usuario
Registrado: Jan 20, 2009 Mensajes: 16
Asunto:
alonsojpd escribió:
¿Qué puerto estás poniendo? para el Oracle XE suele ser el 1521. Asegúrate de esto y nos cuentas. En la aplicación que te hemos indicado el puerto que aparece por defecto es el 1021, cámbialo a 1521.
He probado desde el inicio con el 1521, con el CERO (por si acaso), y nada.
Hay una cosa que me extraña (bueno, dos en realidad)
1º - Si en el ZConnection utilizo ADO en vez de ORACLE como protocolo me conecto sin problemas pero no me deja crear tablespaces, (cuando pongo la ruta me dice que tengo un carácter inválido)
Código:
******* cadena de conexión con ADO *******
{ comprobar la conexión }
with ZConnection do begin
Connected:= false;
HostName := '';
User := '';
Password := '';
Protocol := 'ado';
Port := 0;
Database := 'Provider=OraOLEDB.Oracle.1;'+
'Persist Security Info=True;'+
'Data Source='+Edit_HOST.Text+';'+
//'Mode=ReadWrite;'+
'User ID='+Edit_ADMIN_USER.Text+';'+
'Password='+Edit_ADMIN_PASS.Text+';';
try
BitBtn_CONNECT.Enabled := false;
Connect;
Disconnect;
except
end;
//Database := MYSQL_DBF;
end; { del with ZConnection do }
******* crear el TABLESPACE con ADO *******
with Query do begin
Active := false;
SQL.Clear;
SQL.Add( 'CREATE TABLESPACE '+USER_TBSPACE+' LOGGING' );
SQL.Add( ' DATAFILE ''G:\Oracle-v10g\Servidor\oradata\XE\'+USER_TBSPACE+'.dbf''' );
SQL.Add( ' SIZE 50M' );
SQL.Add( ' AUTOEXTEND ON' );
SQL.Add( ' NEXT 10M' );
SQL.Add( ' MAXSIZE 100M' );
try
ExecSQL;
except
SQL.SaveToFile( 'ERROR_CREATE_ORACLE_tablespace_'+USER_TBSPACE+'.sql' );
end;
end; { del with Query do }
esto dice que tiene un caracter erróneo
SQL.Add( ' DATAFILE ''G:\Oracle-v10g\Servidor\oradata\XE\'+USER_TBSPACE+'.dbf''' );
2º - En el directorio del programa hay un fichero llamado sqlnet.log donde dice que hay un error en el acceso de un programa en Delphi (el propio Delphi), pero pone el usuario del ordenador no el que intenta conectarse ¿esto tiene que ser asi?
Código:
***********************************************************************
Fatal NI connect error 12541, connecting to:
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=PC-SALVADOR)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XE)(CID=(PROGRAM=C:\Program Files\Borland\Delphi7\Bin\delphi32.exe)(HOST=PC-SALVADOR)(USER=Salvador))))
VERSION INFORMATION:
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
Windows NT TCP/IP NT Protocol Adapter for 32-bit Windows: Version 10.2.0.1.0 - Production
Time: 21-ENE-2009 11:04:42
Tracing not turned on.
Tns error struct:
ns main err code: 12541
TNS-12541: Message 12541 not found; No message file for product=NETWORK, facility=TNS
ns secondary err code: 12560
nt main err code: 511
TNS-00511: Message 511 not found; No message file for product=NETWORK, facility=TNS
nt secondary err code: 61
nt OS err code: 0
Lamento el rollo que te he largado, pero creo que eres mi última esperanza (provengo de MySql y parece que las cosas son más fáciles)
Saludos
salvica
Publicado:
Jue Ene 22, 2009 10:31 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Oracle y ZeosDBO
Anuncios
salvica escribió:
He probado desde el inicio con el 1521, con el CERO (por si acaso), y nada.
Hay una cosa que me extraña (bueno, dos en realidad)
1º - Si en el ZConnection utilizo ADO en vez de ORACLE como protocolo me conecto sin problemas pero no me deja crear tablespaces, (cuando pongo la ruta me dice que tengo un ca...
No nos ha dado tiempo a revisar tu post completo pero te comentamos algunas cosas, por si acaso:
1. Hemos realizado unas pruebas y a nosotros nos funciona el programa que te comentamos, AjpdSoft Monitor Espacio Oracle, poniendo en la propiedad "Protocol" el valor "oracle-9i", no "oracle" ni "ado". Se nos conecta perfectamente a Oracle Database 11g y a Oracle Database 10g Express Edition (XE).
2. Te recomendamos, que en vez de pasarle los valores variables concatenando texto con el SQL lo hagas utilizando parámetros. Es decir, en vez de utilizar la línea:
4. Lo que nos comentas del usuario del sistema operativo es relativamente normal, Oracle admite tanto autenticación por usuarios creados en el propio Oracle como usuarios del sistema operativo, con lo cual puede ser normal.
5. Si ves que no lo consigues con ZeosDBO, existen componentes gratuitos para conexión nativa a Oracle, uno de ellos, con el que hemos trabajado bastante y funciona perfectamente, es NCOCI, aquí te mostramos cómo instalarlo:
Y en esta web hay varios programas que lo utilizan con el código fuente disponible.
Ultima edición por alonsojpd el Jue Ene 22, 2009 11:48 pm, editado 1 vez
Publicado:
Jue Ene 22, 2009 11:21 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Oracle y ZeosDBO
Anuncios
Por cierto, prueba esto otro, si te es posible: abre una ventana de MS-DOS y ejecuta el siguiente comando:
Código:
tnsping XE
Si tienes bien configurado el fichero tnsnames.ora te devolverá algo así:
C:\oraclexe\app\oracle\product\10.2.0\server\BIN>TNSPING XE
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 23-ENE-2
009 01:41:40
Copyright (c) 1997, 2005, Oracle. All rights reserved.
Archivos de parßmetros utilizados:
C:\oraclexe\app\oracle\product\10.2.0\server\network\admin\sqlnet.ora
Adaptador TNSNAMES utilizado para resolver el alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = pcalonso
2)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE)))
Realizado correctamente (30 mseg)
C:\oraclexe\app\oracle\product\10.2.0\server\BIN>
Si no te devuelve algo así, indicando "Realizado correctamente (xxx mseg)" es porque tienes algún problema de configuración.
Publicado:
Jue Ene 22, 2009 11:44 pm
salvica Excelente usuario
Registrado: Jan 20, 2009 Mensajes: 16
Asunto:
Agradecido por vuestra respuesta y por el tiempo dedicado.
Hoy me tocan 24 horitas de trabajo, mañana cuando salga lo pruebo y os comento.
Salvica
Publicado:
Vie Ene 23, 2009 3:49 pm
salvica Excelente usuario
Registrado: Jan 20, 2009 Mensajes: 16
Asunto: Re: Oracle y ZeosDBO
Anuncios
alonsojpd escribió:
Por cierto, prueba esto otro, si te es posible: abre una ventana de MS-DOS y ejecuta el siguiente comando:
Código:
tnsping XE
Si tienes bien configurado el fichero tnsnames.ora te devolverá algo así ....
Bueno, pues eso está correcto, por lo que desinstalé Oracle y lo he vuelto a instalar y ... ¡FUNCIONA!
Como la instalación ha sido la misma, (no cambié nada), estoy por jurar que el problema viene porque también estaba instalado el Cliente
Ahora, cuando ejecuto vuestro programa Monitor AjpdSoft Espacio Oracle, se conecta y rellenas las pestañas Tablespaces y Ficheros de Datos, la pestaña Conexiones - Programas la deja en blanco, y la pestaña Conexiones - Usuarion no la trata. Recibo el mensaje SQL Error: OCI_SUCCESS_WITH_INFO, aunque este es otro tema y ya veré si lo recibo con mi aplicación.
Gracias por todo
Salvica
Publicado:
Dom Ene 25, 2009 1:04 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Oracle y ZeosDBO
Anuncios
salvica escribió:
Bueno, pues eso está correcto, por lo que desinstalé Oracle y lo he vuelto a instalar y ... ¡FUNCIONA!
Como la instalación ha sido la misma, (no cambié nada), estoy por jurar que el problema viene porque también estaba instalado el Cliente
Ahora, cuando ejecuto vuestro programa Monitor AjpdSoft Espacio Oracle, se conecta y rellenas las pestañas Tablespaces y Ficheros de Datos, la pestaña Conexiones - Programas la deja en blanco, y la pestaña Conexiones - Usuarion no la trata. Recibo el mensaje SQL Error: OCI_SUCCESS_WITH_INFO, aunque este es otro tema y ya veré si lo recibo con mi aplicación.
Gracias por todo
Salvica
Estupendo, nos alegramos de que te funcione.
El error que nos comentas, hemos estado comprobando el componente ZeosDBO con Oracle y, efectivamente, a veces da ese error, inexplicablemente. Ocurre aleatoriamente, por lo que será más difícil de averiguar el motivo.
Normalmente, en nuestros desarrollos, siempre utilizamos el componente NCOCI8 para la conexión con Oracle desde Delphi.
Publicado:
Dom Ene 25, 2009 9:01 pm
salvica Excelente usuario
Registrado: Jan 20, 2009 Mensajes: 16
Asunto: Re: Oracle y ZeosDBO
Anuncios
alonsojpd escribió:
Normalmente, en nuestros desarrollos, siempre utilizamos el componente NCOCI8 para la conexión con Oracle desde Delphi.
Me he acostumbrado a Zeos con la ventaja de que sirve para Win$ y Linux así que seguiré con ellos (no es por despreciar).
Por cierto, ya que estoy en el foro mato dos pájaros de un tiro
¿Sabes como se crea una tabla de FoxPro o dBase (DBF) con comandos SQL? Estoy haciendo Diseño de Aplicaciones Informáticas (DAI) y una de las prácticas incluye eso (aunque con Ado y VB)
Saludos, por cierto, por lo pronto (aunque lento) Oracle va como un tiro
Salvica
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A