Pregunta

Estoy usando Visual Studio para desarrollar un programa C ++ que usa OCCI para consultar una base de datos Oracle 11g. Es un programa bastante simple en este punto, y solo hace una sola consulta, pero sigo entrando en errores de tiempo de ejecución. Primero intenté desarrollar esto en VS2010, descargando los archivos de 11.2.0.3 OCCI, y obtuve un error relacionado con el punto de entrada para un procedimiento de montón de ALLOC que no se encuentra en Oci.dll. Recibo la impresión Este error podría deberse al hecho de que mi cliente de Oracle es 11.2.0.1.

Dado que no puedo obtener razones de apoyo para actualizar a mi cliente a una versión más alta, decidí recurrir a Visual Studio 2005, ya que leí en la documentación de OCTI de Oracle que las versiones VC8 de OCCI LIBS y DLLS vienen instaladas. en el cliente 11g. Así que moví mi programa C ++ / Occi a VS 2005 y ahora obtuve un error de tiempo de ejecución de depuración diferente: un cuadro de mensaje de error que dice "La aplicación no pudo inicializarse correctamente", y un mensaje del cargador en la ventana de salida VS que dice "LDRPWAKIMPORTDESSIPTOR () Error al probar [Oracle Client Dir] \ OCI \ lib \ msvc \ vc8 \ oraocci11d.dll por su manifiesto, Ntstatus 0xc0150002 "No veo un archivo manifiesto para el oraocci11d.dll, así que estoy en una pérdida. Porque cómo resolver esto. ¿Puede alguien más versado en la configuración de VS para OCCI? Gracias de antemano ...

Sheldon

¿Fue útil?

Solución

Obsípo que una serie de preguntas OCCI aquí se dejan sin respuesta, así que me siento obligado a explicar cómo obtuve mi problema :) Como se menciona a menudo en los hilos OCCI, la clave es descargar la versión apropiada del instante en Oracle Cliente. Había intentado usar archivos de mi cliente de tiempo de ejecución que ya había instalado, pero el número de versión para ese cliente es 11.2.0.1, y el OCS para VS2010 requiere una versión de 11.2.0.2 o 11.2.0.3. Así que terminé descargando la versión 11.2.0.2 para el OCCI y el cliente instantáneo, ya que los números de versión tienen que coincidir para que las cosas funcionen ...

Después de eso, fue simplemente una cuestión de establecer la variable ambiental de la ruta y configurar el proyecto Visual Studio para que apunte a los directorios que contienen las DLL de OCC, las bibliotecas e incluyen los archivos, y también configurando la variable ambiental de TNS_ADMIN que apunte a la Directorio que contiene el archivo TNSNames.ora que define la base de datos a la que estoy tratando de conectar. Para una descripción paso a paso de esta configuración, consulte este Post de blog de Mark Williams. A pesar de que esta publicación fue escrita para Visual Studio 2008, el procedimiento sigue siendo el mismo para 2010, solo con diferentes versiones #s ...

Sheldon

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top