Error de acceso OLEDB

edmichs Mensajes publicados 13 Estado Miembro -  
nagaD.scar Mensajes publicados 4500 Estado Miembro -
Hola,

¡hola!
<<Error de acceso OLEDB
número de error = 2032>> he establecido una conexión a una base de datos Oracle, todo funciona, pero cuando intento hacer una consulta para interrogar mi base de datos Oracle, recibo este mensaje de error:
Error de acceso OLEDB
número de error = 2032
falla al abrir la conexión:
fuente de datos <BEST1>
PROVEEDOR OLEDB <OraOLEDB.Oracle>
tiempo de error del sistema:
fuente = OraOLEDB
número de error = -2147467259 (0*80004005)
estoy trabajando con WinDev 17, por favor, no sé qué hacer y necesito ayuda... Gracias

Configuración: Windows 7 / Chrome 52.0.2743.116

3 respuestas

nagaD.scar Mensajes publicados 4500 Estado Miembro 255
 
Hola,

La primera cosa que hay que hacer es dar el fragmento de código que no funciona x)

Más claramente, viendo tu puesto diría que tienes un conector declarado en tu análisis. (Supongo que tienes bien los controladores Oracle y que la conexión funciona). ¿Tus consultas se crean a través del generador de consultas de Windev o las escribes a mano? ¿Tus datos de conexión son dinámicos o estáticos? ¿Tu conexión está realmente abierta?

En fin, se necesita un poco más de información porque, en el estado actual, todo lo que puedo decirte es que tu conexión no funciona, pero eso no va a ayudar^^

naga
0
edmichs Mensajes publicados 13 Estado Miembro
 
Voici la traduction : ```html

gsdReqClient es una Fuente de Datos
MaConexion es una Conexión

// Parámetros de la conexión

SI NO HDescripciónConexión("MaConexion","system","Stage2016","BEST1","BEST1",hOledbOracle,hOLecturaEscritura) ENTONCES
Info("parámetros incorrectos")
Error(HErroInfo())

SINO
// Apertura de la conexión
HOuvreConexion(MaConexion)

Reloj de arena()
// Ejecución de la consulta
SI NO HEjecutaConsultaSQL(gsdReqClient, hConsultaDefecto, "SELECT * FROM CLIENTE") ENTONCES
Error(HErroInfo())
SINO
Info("La consulta contiene " + HNbReg(gsdReqClient) + " registros.")
FIN

Reloj de arena(Falso)
FIN

ya tengo una conexión vía OLE DB establecida en mi análisis, todos los controladores de Oracle están bien instalados y la conexión que he establecido funciona bien, pero cuando ejecuto una consulta no funciona ```
0
nagaD.scar Mensajes publicados 4500 Estado Miembro 255
 
À cette ligne :


HExécuteRequêteSQL(gsdReqClient, hRequêteDéfaut, "SELECT * FROM CLIENT")



tu n'indiques pas de connexion. Aussi, généralement pour ce type d'accès on passe le paramètre "hQueryWithoutCorrection". Donc :



HExécuteRequêteSQL(gsdReqClient,MaConnexion, hQueryWithoutCorrection, "SELECT * FROM CLIENT")



Ensuite je déconseille
 * 
et de plutôt nommer les champs (pour plus de clarté entre autres)

dis-moi ce que ça donne.
Naga
0
nagaD.scar Mensajes publicados 4500 Estado Miembro 255
 
ah también, comprueba tu conexión:


IF NOT HOuvreConnexion(MaConnexion) THEN
Erreur(HErreurInfo())
END


Y verifica tu entrada en tnsnames.ora
0
edmichs Mensajes publicados 13 Estado Miembro > nagaD.scar Mensajes publicados 4500 Estado Miembro
 
Gracias de antemano, pero no siempre funciona. Aquí está el nuevo mensaje de error que devuelve:

Error de acceso OLEDB
Número de error = 2032
Fallo en la apertura de la conexión:
Fuente de datos <BEST1>
PROVEEDOR OLEDB <OraOLEDB.Oracle>
Tiempo de error de conexión:
Descripción = Una operación OLE-DB en múltiples pasos ha generado errores.
Verifique cada valor de estado OLE-DB disponible.
No se ha realizado ningún trabajo.
Fuente = Componentes del servicio Microsoft OLE DB
Número de error = -2147217887 (0*8004e21)

He comprobado mi conexión en modo de prueba línea por línea y aparentemente ahí es donde está el problema, no se abre la conexión...
Todas mis entradas son correctas en mi tnsnames.ora
Por cierto, aquí está mi tnsnames.ora:

# tnsnames.ora Archivo de configuración de red: \app\Edy\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
# Generado por herramientas de configuración de Oracle.

BEST1 =
(DESCRIPCIÓN =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = Edy-PC)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = BEST1)
)
0
nagaD.scar Mensajes publicados 4500 Estado Miembro 255
 




HDécritConnexion("MaConnexion","system","Stage2016","BEST1","",hOledbOracle,hOLectureEcriture)



Normalmente la fuente de datos es suficiente en Oracle.

Ah, también te aconsejo que cierres bien la conexión (HFermeConnexion) por si acaso (dependiendo de tu configuración, puedes tener un número limitado o incluso único de conexiones - por si acaso, reinicia tu servicio Oracle para cortar todas las conexiones persistentes posibles).

naga
0
edmichs Mensajes publicados 13 Estado Miembro > nagaD.scar Mensajes publicados 4500 Estado Miembro
 
Lo siento, pero nada... siempre aparece el mismo mensaje de error que al principio
si tienes otro fragmento de código de conexión que me permita interrogar mi base de datos, estoy interesado.
0
edmichs Mensajes publicados 13 Estado Miembro
 
¿Tengo el cliente nativo para Windev 12 y no para 17, es posible la actualización?
0
nagaD.scar Mensajes publicados 4500 Estado Miembro 255
 
Puedes comprar una licencia de actualización, pero probablemente tendrás que hacer una solicitud directamente.
Los precios para la actualización a la última versión de Windev:
https://www.pcsoft.fr/pcsoft/tarifs.htm#oracle

Pero dado que en tu caso quieres una actualización para la versión 17, seguramente tendrás que hacerles una solicitud directamente.
0
edmichs Mensajes publicados 13 Estado Miembro > nagaD.scar Mensajes publicados 4500 Estado Miembro
 
Lo único que necesito es esta librería y no todo el acceso nativo. Por favor, si la tienes instalada, ¿puedes enviármela por correo? Te estaré más que agradecido...
0
nagaD.scar Mensajes publicados 4500 Estado Miembro 255
 
No, pienso que hay una validación de licencia, así que solo la DLL no sería suficiente... habría que probar, pero no estoy seguro. Por otro lado, no tengo acceso a la 17, estoy en la 18, así que eso es todo.
0
edmichs Mensajes publicados 13 Estado Miembro > nagaD.scar Mensajes publicados 4500 Estado Miembro
 
No te preocupes por la licencia, creo que podría funcionar con la DLL de la versión 18.
0
nagaD.scar Mensajes publicados 4500 Estado Miembro 255
 
No, si cada DLL fuera portátil de una versión a otra, no venderían muchas licencias ^^ (y al final podrías simplemente renombrar tu DLL de la versión 11)

De hecho, la licencia está sujeta a una clave que se inscribe al generar tu exe. Si no hay licencia, el exe no podrá desplegar la conexión.

La solución posible sería, de hecho, hacer una DLL (quizás un componente también te lo permitiría) de WinDev en la versión 11 de transacciones con Oracle, que luego podrás importar en tu proyecto en la versión 18 para explotar indirectamente el acceso nativo. Un poco pesado, pero debería funcionar.
0