Tomar datos de dos Bases distintas en MySQL

348 views
Skip to first unread message

Arnaldo Toledano

unread,
Oct 1, 2013, 2:43:00 PM10/1/13
to publice...@googlegroups.com
Gente,
Tengo una base de datos PEPE
Y otra base de datos PEPA
Ambas contienen las mismas tablas.

Necesito desde PEPE , tomar datos de PEPA con algunas condiciones.
Lo único que se me ocurre hacer es lo siguiente.
DEFINIR dos CONEXIONES
Conexion_a_Pepe
Conexion_a_Pepa

Y proceder de la siguiente manera

IF SqlExec(Conexion_a_Pepa,"Select * From Archivo1","_Cursor1|") etc, etc, etc.
...
....
....


Select _Cursor1
Scan
      cSelect="Inser into Archivo1(dato1,dato2,....,datoN) Value(_Cursor1.Dato1,_Cursor1.Dato2,....,_Cursor.DatoN)  Where lo que sea"
      If Sqlexec(Conexion_a_Pepe,cSelect) etc, etc

endscan

Existe algo MAS SENCILLO ?????


Gracias Gente




--
Arnaldo Toledano
Tesys Informática
Córdoba
Argentina

Luis Mata

unread,
Oct 1, 2013, 3:16:52 PM10/1/13
to publice...@googlegroups.com
Y porque hay 2 bases iguales separadas?

Arnaldo Toledano

unread,
Oct 1, 2013, 3:25:30 PM10/1/13
to publice...@googlegroups.com
Es un caso "único", de paso de información de un sistema a otro.

Arnaldo

Luis Mata

unread,
Oct 1, 2013, 3:30:39 PM10/1/13
to publice...@googlegroups.com
Puedes hacerlo a nivel de servidores pero igual vas a tener que hacer codigo, puedes hacer Jobs..

J. Enrique Ramos Menchaca

unread,
Oct 1, 2013, 3:40:43 PM10/1/13
to publice...@googlegroups.com, arnaldo....@gmail.com
Directamente en MySQL seria así:
INSERT INTO PEPE.TABLA1(Dato1, Dato2, Dato3,...,DatoN)
  SELECT Tabla1.Dato1, Dato2, Dato3,...,DatoN
  FROM PEPA.Tabla1 WHERE <<Tu Condición>>;

Eso te importaría todo el select sin tener que recorrer registro por registro.

HernanCano

unread,
Oct 1, 2013, 7:26:30 PM10/1/13
to publice...@googlegroups.com, arnaldo....@gmail.com
JEnrique:
No entendiste------

HernanCano

unread,
Oct 1, 2013, 7:30:42 PM10/1/13
to publice...@googlegroups.com, Luis Mata
Luis:
Posible alternativa:
Una es la central y la otra es una sucursal. Y lo que se podría pretender es pasar todo de la sucursal a la central.
No me parece desacertado.

Arnaldo:
La solución que yo veo es lo que dices.

MALKASOFT ADPI: http://www.developervfp.blogspot.com/

unread,
Oct 1, 2013, 7:50:14 PM10/1/13
to publice...@googlegroups.com, arnaldo....@gmail.com
Hola si lo vas  hacer a nivel de servidores puedes hacer REPLICAS de esa manera sera mas sencillo que la data este actualizado.


Pd.: Descargate mi grilla que tiene multiples funciones como filtrar, multiseleccion, búsqueda, etc del siguiente link http://www.developervfp.blogspot.com/p/gridlibre-v35.html. Ahora también puedes bajarte mi ultima herramienta Busqueda Incremental con un TEXTBOX http://developervfp.blogspot.mx/p/busqueda-incremental-con-un-textbox.html  las herramientas viene con código fuente, ojo no hacer mal uso por favor. 


Saludos; 


Ing. Russvell Jesus Soto Gamarra 
San Juan del Rio - Queretaro - Mexico 
Nextel.: 52*133750*16
rycjesusrj @ hotmail.com
Framework Multi-conexion version 6.0 (nueva)

J. Enrique Ramos Menchaca

unread,
Oct 2, 2013, 11:51:31 AM10/2/13
to publice...@googlegroups.com, arnaldo....@gmail.com
Hernan Cano:

El nunca dice tener varios servidores, sino 2 bases de datos distintas, y eso no es lo que se entiende de su correo y el pide una solución más rápida que la rutina que el ya tiene, y eso es lo que proporcione con los datos que el mismo dio.

Creo que debes leer bien las cosas antes de contestar y si estas suponiendo decirlo.


El martes, 1 de octubre de 2013 13:43:00 UTC-5, tesys escribió:

ZeRoberto

unread,
Oct 3, 2013, 7:13:42 PM10/3/13
to publicesvfoxpro
Prueba esto

SELECT a.* FROM Pepe.Tabla1 a WHERE a.CodAlt = 1 UNION ALL SELECT b.* FROM Pepa.Tabla1 b WHERE b.CodAlt = 2

Saluds

HernanCano

unread,
Oct 3, 2013, 7:58:43 PM10/3/13
to publice...@googlegroups.com, arnaldo....@gmail.com
------JEnrique dice:-------


Hernan Cano:
El nunca dice tener varios servidores, sino 2 bases de datos distintas, y eso no es lo que se entiende de su correo y el pide una solución más rápida que la rutina que el ya tiene, y eso es lo que proporcione con los datos que el mismo dio.
Creo que debes leer bien las cosas antes de contestar y si estas suponiendo decirlo.

------Hernan Cano dice:-------

Tienes razón, JEnrique, él no lo dijo. Con la respuesta sobre la central y la sucursal le estoy respondiendo a Luis, pues él pregunta "Y porque hay 2 bases iguales separadas?". Sólo le menciono que sí hay un posible escenario para la pregunta del colega preguntante.

Luego de leer tu respuesta, me doy cuenta que no entendiste la pregunta, pues la pregunta dice que PEPE y PEPA son BASES DE DATOS (incluso que "ambas contienen las mismas tablas"!!!), pero ---por si no lo entiendes--- te cuento que él habla de DBCs, no de DBFs (SI HABLAMOS DE TERMINOLOGIA xBASE).
Ahora si miras bien el ejemplo, él habla de SQLEXEC y de CONEXIONES, por lo tanto no está hablando de archivos nativos de VFP.

----Me queda claro que los DBFs también pueden ser accesados por ODBC, pero......eso es otro paseo---------------

Incluso considero que la alternativa de Kanashiro tampoco es válida por lo mismo.

HernanCano

unread,
Oct 3, 2013, 8:11:23 PM10/3/13
to publice...@googlegroups.com, arnaldo....@gmail.com
Amigo tesys:

Una posible solución la encuentras el el sgte artículo.
Te digo la alternativa  si es para MYSQL/MariaDB:

La sgte sección de tu método...


Select _Cursor1
Scan
      cSelect="Inser into Archivo1(dato1,dato2,....,
datoN) Value(_Cursor1.Dato1,_Cursor1.Dato2,....,_Cursor.DatoN)  Where lo que sea"
      If Sqlexec(Conexion_a_Pepe,cSelect) etc, etc

endscan

Cámbiala de manera que generes una sola cadena de texto ---larga--- (la cSelect) con los valores de los registros a agregar.
La idea de cómo hacerlo la obtienes del artículo...(la idea!!!)...

Rutina que genera un archivo de texto .sql con formato de Backup MySql
http://www.portalfox.com/index.php?name=News&file=article&sid=2741

La clave está en la forma de continuar con coma o terminar con punto y coma.

      SKIP +1
      *// si es el ultimo registro finalizamos sentencia sql
      IF EOF()
        FWRITE( _han, ";"+_eol )
      ELSE
        FWRITE( _han, ","+_eol )
      ENDIF
      

ZeRoberto

unread,
Oct 4, 2013, 11:00:28 AM10/4/13
to publicesvfoxpro
A mi si me funciono, pero siempre y cuando las 2 BD esten en el mismo servidor.

Imágenes integradas 1
Union.PNG
Reply all
Reply to author
Forward
0 new messages