Transacciones SQL Entre Access Y MySQL
Necesito sacar cada hora unos datos que están en un sistema Sybase, otros que están en access y alimentar con ellos una base MySQL que a su vez se utiliza para alimentar un web con PHP.
A Sybase accedo exclusivamente por un ODBC de sólo lectura que nos ha proporcionado la empresa ->DSN de sistema "Acceso al informacional" .
He instalado también el driver de ODBC para MySQL .
El caso es que si lo vinculo todo desde access, puedo hacer todos las consultas que quiera, sacando un campo de cada origen o bien actualizar el MySQL con los datos relacionados del Sybase y access.
Tengo que automatizar el proceso y estoy haciendo pruebas con .net. Logro conectarme con cada Origen, pero no soy capaz de hacer un select con un campo de cada tabla o insertar registros en MySQL con una columna de cada origen.
Lo máximo que he conseguido ha sido crear unas consultas en access que se puedan invocar desde .net y que me descarguen datos desde el ODBC de Sybase en Access pero soy incapaz de hacer un INSERT de los registros de Access a MySQL.
Este sería mi código:
' conectamos al Sybase con el ODBC..por ejemplo
Dim odsCnn As New ADODB.Connection
odsCnn.Open("dsn=Acceso al informacional;uid='" & strUser & "';pwd='" & strPassword & "';")
'Conectando a Access ... Por ejemplo:
Dim odbCnn As System.Data.OleDb.OleDbConnection
Dim connectionString As String
path_Bd = TextBoxRuta.Text 'MsgBox(path_Bd)
connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data source=" & path_Bd
odbCnn = New OleDb.OleDbConnection(connectionString)
odbCnn.Open()
'generando una tabla en acces con los datos de Sybase que funciona
Dim cmd = New OleDb.OleDbCommand(nombre_de_consulta_creacion_de_tabla_en_access, odbcnn)
cmd.CommandType = CommandType.StoredProcedure
cmd.ExecuteNonQuery()
'Conectando a mySQL ... Así
Dim myCnn As System.Data.Odbc.OdbcConnection
Dim myConnectionString = "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=abtc; " & _
"User=root; Password=root;Option=3;"
myCnn = New System.Data.Odbc.OdbcConnection(myConnectionString)
myCnn.Open()
'intento de pasar los datos de access a MySQL que no funciona
Dim cmd As Odbc.OdbcCommand
cmd = New Odbc.OdbcCommand('INSERT INTO tabla_de_mySQL SELECT * FROM tabla_de_access;', myCnn)
Cmd. ExecuteNonQuery()
No se como hacer esto último porque el sistema intenta buscar la tabla_de_access en MySQL.
No se como decirle que la coja del access.
A Sybase accedo exclusivamente por un ODBC de sólo lectura que nos ha proporcionado la empresa ->DSN de sistema "Acceso al informacional" .
He instalado también el driver de ODBC para MySQL .
El caso es que si lo vinculo todo desde access, puedo hacer todos las consultas que quiera, sacando un campo de cada origen o bien actualizar el MySQL con los datos relacionados del Sybase y access.
Tengo que automatizar el proceso y estoy haciendo pruebas con .net. Logro conectarme con cada Origen, pero no soy capaz de hacer un select con un campo de cada tabla o insertar registros en MySQL con una columna de cada origen.
Lo máximo que he conseguido ha sido crear unas consultas en access que se puedan invocar desde .net y que me descarguen datos desde el ODBC de Sybase en Access pero soy incapaz de hacer un INSERT de los registros de Access a MySQL.
Este sería mi código:
' conectamos al Sybase con el ODBC..por ejemplo
Dim odsCnn As New ADODB.Connection
odsCnn.Open("dsn=Acceso al informacional;uid='" & strUser & "';pwd='" & strPassword & "';")
'Conectando a Access ... Por ejemplo:
Dim odbCnn As System.Data.OleDb.OleDbConnection
Dim connectionString As String
path_Bd = TextBoxRuta.Text 'MsgBox(path_Bd)
connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data source=" & path_Bd
odbCnn = New OleDb.OleDbConnection(connectionString)
odbCnn.Open()
'generando una tabla en acces con los datos de Sybase que funciona
Dim cmd = New OleDb.OleDbCommand(nombre_de_consulta_creacion_de_tabla_en_access, odbcnn)
cmd.CommandType = CommandType.StoredProcedure
cmd.ExecuteNonQuery()
'Conectando a mySQL ... Así
Dim myCnn As System.Data.Odbc.OdbcConnection
Dim myConnectionString = "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=abtc; " & _
"User=root; Password=root;Option=3;"
myCnn = New System.Data.Odbc.OdbcConnection(myConnectionString)
myCnn.Open()
'intento de pasar los datos de access a MySQL que no funciona
Dim cmd As Odbc.OdbcCommand
cmd = New Odbc.OdbcCommand('INSERT INTO tabla_de_mySQL SELECT * FROM tabla_de_access;', myCnn)
Cmd. ExecuteNonQuery()
No se como hacer esto último porque el sistema intenta buscar la tabla_de_access en MySQL.
No se como decirle que la coja del access.
1 Respuesta
Respuesta de dayvitt
1