Visual Basic - Dos conexiones simultaneas en ADO VB6.0, Se puede?

Life is soft - evento anual de software empresarial
   
Vista:

Dos conexiones simultaneas en ADO VB6.0, Se puede?

Publicado por David Jonathan Molina Godoy (10 intervenciones) el 11/02/2011 16:55:55
Muy buen dia,

mi pregunta es, Sera posible poder establecer dos conexiones odbc al mismo tiempo con ado.? es decir, abro una conexion OBDC con MySQL por ejemplo y quiero pasar datos de unatabla en MySQL, a otra tabla pero en otra base de datos en ODBC, en este caso, en una tabla Access 2007 (nada mas por ejemplo). Es posible trasladar datos de una base de datos remota mediante ODB a una base de datos local que tambien esta en ODBC..?

Gracias de antemano amigos por vuestro tiempo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Dos conexiones simultaneas en ADO VB6.0, Se pue

Publicado por Paolo Santos (74 intervenciones) el 13/02/2011 18:20:38
Buen DIa no has probado con DAO, pero considero que si es posible si utilizas comandos SQL,, SELECT de la tabla origen MySQL e INSERT en la tabla destino, recordemos que la diferencia o lo que debes de diferenciar es el nombre como declaras las conexiones, por ejemplo con la tabla en acess lo puedes declarar bdLocal As Database, y aqui abres la base de datos local, ademas que esta es por decirlo asi la variable donde diferencias la base de datos destino y la base de datos origen, ummm puedes declarar un workspace de esta forma wsOrigen As Workspace, y luego declaras la conexion, cnnMySQL as Connection, luego puedes abrir la conexion a la base de datos origen

Set cnnMySQL = wsOrigen.OpenConnection("NombreServidor", dbDriverNoPrompt, False, "ODBC;DSN=nombreDNS;UID=userid;PWD=password")

con esto ya tendrias la otra variable de la conexion origen que es la de MySQL asi ya tendrias separadas las conexiones y poder realizar traslados de datos de una base de datos a otra, ahora si hago la aclaracion de que esto lo hago con conexion DAO en la parte de la base de datos MySQL y comandos SQL, y con DAO en la tabla Access y siempre con comandos SQL. espero te sirva o cualquier duda puedes escribirme a mi correo, Saludos.....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dos conexiones simultaneas en ADO VB6.0, Se pue

Publicado por Christian (666 intervenciones) el 14/02/2011 20:00:15
Si por supuesto se puede, se crearan dos objetos de conexion distintos y mientras lees uno, podes hacer el insert en otro sin problemas.

saludos.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dos conexiones simultaneas en ADO VB6.0, Se pue

Publicado por David Jonathan Molina Godoy (10 intervenciones) el 14/02/2011 20:36:28
Muchisimas gracias amigos por las respuestas,

Pues efectivamente las conexiones las cree con sus respectivos recordset y pues exitosamente pude copiar los registro de una tabla a la otra, solo que tuvo que ser registro por registro, mediante un ciclo "do until", la conexion de MySql es la llame "cn" y la onexion de Access la llame "Con"

Anteriormente en otros programas he copiado registros de una base de una tabla a otra dentro de la misma BD mediante la sentencia SQL:

"INSERT INTO nombre_de_la_nueva_tabla SELECT * FROM antigua_tabla".

pero para poder hacer esto debo usar el comando execute de la conexion, es decir:

cn.Execute (strSQL),

como podria hacer para insertar en SQL de una conexion a otra..? considerando que ambas conexiones estan abierta satifactoriamente. O como seria la sentencia SQL para llevar a cabo esto..?

Gracias de antemano por vuestro tiempo.!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dos conexiones simultaneas en ADO VB6.0, Se pue

Publicado por Paolo Santos (74 intervenciones) el 15/02/2011 04:34:56
La conexion es sobre el mismo servidor SQL, o es el mismo caso 1 conexion en MySQL, y la otra en Access, porque a mi parecer no se puede hacer algo mas sencillo mas que la que utilizastes de ir registro por registro, aunque no debiera ser problema por las velocidades de las conexiones o cantidad de datos al menos que sea una gran cantidad de datos, esto si fuera el segundo caso, ahora si es sobre el mismo servidor y misma instalacion de motor de base datos, si se puede hacer en la misma sentencia SQL, diferencuando las tablas segun las instancias creadas, es decir "INSERT INTO db2.nombre_de_la_nueva_tabla SELECT * FROM db1.antigua_tabla". y se podria hacer en la misma conexion al motor de la base de datos, pero bueno esperamos la opinion de algun otro experto, espero te sirva esta solucion... Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dos conexiones simultaneas en ADO VB6.0, Se pue

Publicado por David Jonathan Molina Godoy (10 intervenciones) el 15/02/2011 06:25:28
Gracias Paolo por tu punto de vista,

Pues creo que por los momento me quedare como tu dices (copiando registro por registro), afortunadamente, no son mas de 20 mil registros asi que el proceso toma en su totalidad 10 minutos aproximadamente. Una vez mas, gracias por la ayuda.!

Jonathan
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar