[RESUELTO] Abrir una tabla de otra base de datos

Discute sobre las herramientas de la base de datos
Responder
pmartimor
Mensajes: 63
Registrado: Jue Mar 08, 2018 2:11 pm

[RESUELTO] Abrir una tabla de otra base de datos

Mensaje por pmartimor »

Buenos días:
He estado buscando en el foro, pero no he sabido encontrar la información que busco.
Necesito abrir una tabla de otra base de datos distinta a la que estoy utilizando, pero no quiero importar dicha tabla, solamente usarla para una consulta y mostrar algunos de los datos de dicha tabla sin salir de la base de datos que estoy usando.
Saludos y gracias.
Última edición por pmartimor el Sab May 26, 2018 8:15 am, editado 1 vez en total.
LibreOffice 5.1.0.3 en clientes Windows 10, 7, XP sobre BD MySql.
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Abrir una tabla de otra base de datos

Mensaje por Longi »

Cuestión que merecería un icono con muchos pinchos!!!
A bote pronto se podría decir que no se puede, pero estoy trabajando con importaciones de tablas, y quizá sea posible, pero........
Mejor mandas un ejemplo para tener una base sobre la que poder intentarlo (y bien digo: intentarlo).
Pudiera ser que alguien del foro te dé una respuesta sencilla y rápida, pero a mi se me antoja un proyecto un tanto denso de desarrollar (si no directamente no realizable).

Lo dicho!, manda un ejemplo y a ver qué podemos hacer!

Un saludo!
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
pmartimor
Mensajes: 63
Registrado: Jue Mar 08, 2018 2:11 pm

Re: Abrir una tabla de otra base de datos

Mensaje por pmartimor »

Longi escribió:Cuestión que merecería un icono con muchos pinchos!!!
A bote pronto se podría decir que no se puede, pero estoy trabajando con importaciones de tablas, y quizá sea posible, pero........
Mejor mandas un ejemplo para tener una base sobre la que poder intentarlo (y bien digo: intentarlo).
Pudiera ser que alguien del foro te dé una respuesta sencilla y rápida, pero a mi se me antoja un proyecto un tanto denso de desarrollar (si no directamente no realizable).

Lo dicho!, manda un ejemplo y a ver qué podemos hacer!

Un saludo!
En realidad, la cuestión puede ser difícil, pero fácil de entender lo que pretendo:
Tengo una base de datos de 'Incidencias' en MySQL con cuatro tablas, que funciona perfectamente, por ahora... :)
Hay unos datos que están en otra base de datos MySQL en el mismo servidor, a la que tengo acceso, que contiene una tabla con datos delicados que NO DEBO importar, solo quiero leer una de sus tablas para mostrar una información más completa con algunos de los campos de esa tabla en la primera base de datos. Es decir, el problema está en leer esa tabla de esa segunda base de datos, coger los campos que necesito para hacer unos informes, pero NO importar la tabla (abrir la segunda base de datos desde la primera, leer una de sus tablas sin importarla, coger los campos que necesito, mostrarlos en un informe, y cerrar o salir de esa segunda base de datos). También podría importar la tabla y borrarla al salir... pero el problema seguiría siendo el acceso a esa tabla que está en otra base de datos...

Hacer un juego de datos para enviar un ejemplo, es complejo y delicado por su contenido y por el trabajo que supone... importar datos de las dos bases de datos desde MySQL a formato propio de OpenOffice, hacer un juego de datos de ejemplo para las 4 tablas de la primera base de datos, hacer un juego de datos de ejemplo para la segunda base de datos... no sé, lo intentaré, aunque no creo que eso dé más pistas que la propia explicación de lo que necesito.

Gracias y saludo.
LibreOffice 5.1.0.3 en clientes Windows 10, 7, XP sobre BD MySql.
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Abrir una tabla de otra base de datos

Mensaje por fornelasa »

Exacto, a lo mejor es sencillo de explicar pero laborioso de hacer y parece que estamos ante un desarrollo completo por realizar.
Vamos a un ejemplo fácil, aunque tal vez no sirva para esta consulta.
Así tal cual
Abrir una tabla de otra base de datos

Código: Seleccionar todo

Sub Main
Dim Array()
Dim Control as Object
ruta = convertToURL("C:\Users\Federico\Downloads\edadSueldo.odb")
ArchivoDoc = StarDesktop.loadComponentFromURL( ruta, "_blank", 0, Array() )
   	Control = ArchivoDoc.CurrentController
	If Not Control.IsConnected Then	Control.Connect
	ArchivoDoc.FormDocuments.GetByName("Formulario1").Open
End Sub
El ejemplo es claro, abre la base de datos "edadSueldo.odb" e inmediatamente abre el formulario "Formulario1", .... obvio dicho formulario deberá contener un control tabla y un control botón "Salir del formulario".
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Abrir una tabla de otra base de datos

Mensaje por Longi »

En HSQLDB se puede conectar a la 2ª base de datos sin abrirla 'oficialmente'.
Mi intención sería trabajar desde la conexión, pero al meter MySQL por el medio no me atrevo a tocar nada.
No trabajo con MySQL
Lo siento, pero no puedo ayudar.
Investiga la opción de
 Editado: forlenasa 
fornelasa (mira que tengo manía de cambiarle el alias!), que seguro que es mucho más simple que lo que a mi se me ocurría y mucho más efectiva.

Un saludo! ;)
Última edición por Longi el Jue May 24, 2018 9:13 pm, editado 1 vez en total.
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Abrir una tabla de otra base de datos

Mensaje por RMG »

Hola,

Prueba si esto te funciona. Se asemeja a lo de fornelasa pero abre una tabla.

Código: Seleccionar todo

SubAbrirTablaBD()
Dim sRuta As String
Dim mArg()
Dim oDocumento As Object
Dim sNombreT As String
Dim Control as Object
   'Reemplaza esta ruta por la ruta de tú archivo
   sRuta = ConvertToUrl( "E:\TAREAS.odb" )
   oDocumento = StarDesktop.loadComponentFromURL( sRuta, "_blank", 0, mArg() )
   Control = oDocumento.CurrentController
   If Not Control.IsConnected Then  Control.Connect
	'Nombre de la tabla
	sNombreT = "TBL_Alumnos"
	Control.loadComponent(com.sun.star.sdb.application.DatabaseObject.TABLE, sNombreT,FALSE
End Sub
Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
pmartimor
Mensajes: 63
Registrado: Jue Mar 08, 2018 2:11 pm

Re: Abrir una tabla de otra base de datos

Mensaje por pmartimor »

RMG escribió:Hola,

Prueba si esto te funciona. Se asemeja a lo de fornelasa pero abre una tabla.

Código: Seleccionar todo

SubAbrirTablaBD()
Dim sRuta As String
Dim mArg()
Dim oDocumento As Object
Dim sNombreT As String
Dim Control as Object
   'Reemplaza esta ruta por la ruta de tú archivo
   sRuta = ConvertToUrl( "E:\TAREAS.odb" )
   oDocumento = StarDesktop.loadComponentFromURL( sRuta, "_blank", 0, mArg() )
   Control = oDocumento.CurrentController
   If Not Control.IsConnected Then  Control.Connect
	'Nombre de la tabla
	sNombreT = "TBL_Alumnos"
	Control.loadComponent(com.sun.star.sdb.application.DatabaseObject.TABLE, sNombreT,FALSE
End Sub
Saludos
OK. Muchas Gracias. Esto sí funciona. :bravo:
LibreOffice 5.1.0.3 en clientes Windows 10, 7, XP sobre BD MySql.
Responder