datos externos a una base de datos de Oracle

30/11/2005 - 20:41 por Miller | Informe spam
Hola

Agradezco a la persona que me pueda colaborar con lo siguiente:

Problema :
Hice una tabla dinámica que consulta datos externos a una base de Oracle. el
driver utilizado para hacer las consultas es oracle 7.3 , si abro el archivo
en una máquina que tiene driver de oracle 8i, la tabla dinámica no funciona
por la conexión a la base de datos con el driver diferente. ( los parámetros
de conexión a la base de datos los configura Microsoft query dependiendo del
driver de oracle donde se elaboraron las consultas de archivo y los guarda en
un archivo .qry ó dqy)

Preguntas :
- Como hago para que las tablas dinámicas funcionen en otra máquina con una
versión de driver de Oracle diferente a donde elaborá las consultas ?
- Existe un componente o algo que independientemente del driver en que las
hice las pueda ejecutar en diferentes máquinas con diferentes driver de
oracle ?
- En el peor de los casos , hay que volver a hacerla cada consulta dinámica
en la otra máquina con datos externos tomados de misma base de datos pero con
driver de oracle de dicha máquina?

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
01/12/2005 - 04:23 | Informe spam
hola, Miller !

Mostrar la cita
1) [hasta donde se] los componentes de conexion a bases de datos 'mantienen compatibilidad' con drivers 'anteriores'
de hecho, si piensas 'programar' para varias 'plataformas/versiones de drivers'... se recomienda programar en la mas 'baja' ;)

2) MS-Query [aun desde la interfase del usuario] para hacer las conexiones SQL/ODBC/OLE DB/... etc.
requiere que este instalado el componente MDAC [microsoft data access component] -por lo tanto-
si 'hablamos' de maquinas diferentes... [seguramente] los componentes instalados son tambien diferentes :))

3) existe la posibilidad de que en la maquina donde 'fallan'... a pesar de tener un driver de oracle 'superior' [o mas reciente]...
el componente MDAC sea 'inferior' [o de version anterior] al instalado en la maquina donde se crearon las consultas -?-

es posible que hubiera otras causas probables de la falla que expones -?-
comentas [si hubiera] algun detalle adicional ?
salduos,
hector.

p.d. solo por si las dudas...
-> obten la version mas reciente del componente MDAC [la 2.8] en: http://tinyurl.com/49duk
selecciona primero el idioma en que necesitas la instalacion del componente
lee bien [o imprime] las instrucciones antes de iniciar la descarga
no te olvides de descargar tambien el 'parche' [Q832483]

-> despues, revisa la informacion acerca de como 'dar de alta' el componente en:
http://support.microsoft.com/defaul...-es;197893
seccion: mas informacion - crear el origen de datos en el panel de control
[panel de control -> herramientas administrativas -> origenes de datos odbc]
nota: el enlace [en esta pagina] para 'llegar' a la version mas reciente es mas 'tardado'
#2 Miller
01/12/2005 - 18:07 | Informe spam
Hola Hector

Muchas gracias por tu colaboración

Estuve revisando la verdión del Mdac y tengo la 2.8 para windows XP , esto
lo miré
con un Component Checker para revisar las versiones.

Pero he detectado lo siguiente:

Mi PC tiene Windows XP SP2 con office 2000 , tengo driver de Oracle 7.3 y
Microsof ODBC for Oracle.

Los pasos que hago son :

- Hago un archivo de excel con datos externos y configuro las consultas con
el ODBC con el driver de Oracle 7.3 ( las consulta me traen datos)

- Cierro el archivo y cambio DNS con el mismo nombre pero ahora con el driver
Microsof ODBC for Oracle.

- Abro el archivo de excel e intento ejecutar las consultas y me sale el
error de
[Microsoft] [Administrador de controladores ODBC] El SQLSetConnectAttr de
controlador falló

- Igualmente me genera este error si trato de abrir en una máquina
diferente con Oracle 8i y oficce 2000.


ahora :

- Hice un archivo de excel con datos externos y configuro las consultas con
el ODBC con el driver de Oracle 7.3 ( las consulta me traen datos)

- Abrí el archivo en una máquina con Office 2003 y driver Oracle 8i
las consultas me ejecutaron bien.

- Hice varias pruebas de archivos con diferentes driver de Oracle y los
probé en la maquina con Office 2003 y funcionaron todas.


Pregunta : Será entonces que el problema que tengo es una limitante de
office 2000 y se corrigió en 2003 ?

- Habrá un parche para esto específicamente ?

De nuevo mil gracias por tu ayuda .

Miller









"Héctor Miguel" escribió:

Mostrar la cita
#3 Héctor Miguel
02/12/2005 - 04:49 | Informe spam
hola, Miller !

Mostrar la cita
___ 1 ___
Mostrar la cita
___ 2 ___
Mostrar la cita
1) [segun parece]... los errores 'aparecen' cuando se conjuga:
a) cambio de los DSN y...
b) cambio del controlador OBDC 'entre' el que crea [Oracle 7.x / 8x] ...y el que 'falla' [Microsof ODBC for Oracle]

2) cuando 'creas' con drivers de Oracle 7.x ... y 'refrescas' con drivers Oracle [aun 'superiores como el 8x]...
[segun comentas]... NO hay 'fallas' ;)

3) resumiendo: [seguramente] las sentencias de la conexion son distintas en uso para cada driver [Oracle / Microsoft for Oracle] -?-
-> sigue los siguientes pasos para 'comparar' los strings de conexion que utiliza cada driver...
[obviamente] tendras que 'activar' la hoja Y la conexion donde se encuentra la consulta...
a) ve al editor de vba... y abre la ventana de inmediato -> atajo: ctrl + G
b) introduce [y pulsas enter al final]: ? activesheet.querytables(1).connection
[o mejor aun... usa una celda 'limpia' para depositar las cadenas de conexion p.e. [A1] la primera vez y [A2] la segunda
modificando en la ventana de inmediato a:
range("a1") = activesheet.querytables(1).connection
-> puedes utilizar [A1} para la pc donde SI funciona y [A2] para la pc/driver/dsn/... donde NO funciona
c) repite los pasos anteriores en la pc/driver/dsn/... donde NO funciona y...
-> COMPARA los strings de las cadenas de conexion que utiliza cada driver [Oracle / Microsoft for Oracle]
[seguramente] encontraras 'las causas' [por cadenas de conexion diferentes] -?-

comentas ?
saludos.
hector.
#4 Miller
02/12/2005 - 22:31 | Informe spam
Hola Hector

Efectivamente los parámetros de conexiones son diferentes por eso es que no
reconoce el office 2000 diferentes drivers

Por ejemplo con Oracle 7.3 lo crea así :

DSN=xxx;UID=xxx ;DBQ=xxx ;ASY=OFF;

Para Microsoft ODBC para Oracle así:

DSN=xxx;UID=xxx;SERVER=xxx;

Para 8i genera otros , y si lo hago en 7.x no lo reconoce luego en 8x (
esto con office 97 o 2000)

PERO como te había comentado en office 2003 los reconoce todos independiente
de en que driver lo haya hecho.

De ahí la pregunta
- habrá algun parche para Office 97 ó 2000 que lo resuelva
- La solución queda solamente en ofiice 2003 ?


Gracias !



"Héctor Miguel" escribió:

Mostrar la cita
#5 Héctor Miguel
04/12/2005 - 07:48 | Informe spam
hola, Miller !

Mostrar la cita
a) [me parece que] las situaciones que planteas... 'nos dejan' como al principio [segunda linea del comentario inicial]...
-> '... de hecho, si piensas 'programar' para varias 'plataformas/versiones de drivers'... se recomienda programar en la mas 'baja'

b) considerando que los drivers 'directos' de oracle... pudieran NO estar presentes en otras/todas las versiones/plataformas/pc's/etc.
y que los drivers de oracle [parece que] NO 'respetan' sus propias versiones anteriores y que la siguiente version... -quien lo sabe?-
[ademas de que son 'ajenos' a microsoft y 'ellos' son los que consideran las mejoras para sus aplicaciones... esperar algun 'parche' ?]
[creo que] la plataforma mas 'baja' que te queda... es programar con las conexiones [y los drivers de microsoft] de office 97 -?-

c) las 'preferencias' de los expertos en conexiones van en el siguiente orden...
1) mdac/ado [es decir... macros]
-> requiere de mantener 'uniformidad' en las versiones instaladas... o -nuevamente- usar la mas baja al programar :D
2) usas los drivers de oracle
-> ya has visto algunos 'inconvenientes' por in/compatibilidades en la version de los controladores :(
3) usar los drivers odbc
-> se supone que es la opcion mas 'universal' -?-

saludos,
hector.
Ads by Google
Search Busqueda sugerida