Hola tengo una conexión con ODBC a una base de Cobol
string ConnStrCobol = "DSN=XXXdata;UID=sdasd;PWD=;server=192.168.0.1 10";
y otra a una base de datos en SQL Server
string ConnStrSQL = "Data Source=192.168.0.105;user=yop;password=dlkjfkd;DAT ABASE=Reps_Test;"
Actualmente la aplicación, consulta los datos en cobol, lo hace pasar por un ciclo para la inserción de registro por registro, son bastantes tablas y millones de registros.
Las tablas en cobol tiene más de 500 campos, así que estoy usando un select *
consultaCobol = "SELECT * FROM " + lineaTabla;
Habrá alguna manera de hacer la ejecución de un insert into con select entre estas bases?
string consulta = "Insert into " + tablaSQL + " values " + consultaCobol;
Y cómo debería colocarse el código de ejecución del query?
He estado buscando, y lo más que he hallado es de un chico llamado Antonio, pero no sé como emularlo en C#
Código:
Autor:
antonio 2.744
Fecha: 16/11/2008 18:19:48
Asunto: RE:INSERT INTO ENTRE DOS BASES DE DATOS DIFERENTES
vale ya tengo la solucion , aqui dejo dos ejemplos uno de insert into y otro de update para que al que le haga falta se haga una idea.
Saludos.:
Dim adodb5 As ADODB.Connection
adodb5 = New ADODB.Connection
adodb5.Open("PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("CGI-BIN/CARRERAS/" & Session("BASEDATOS")))
adodb5.Execute("insert into inscritos IN '' [;DATABASE=" & Server.MapPath("CGI-BIN/panel1.mdb") & "] select cod_cor , (lapoblacion) as nom_pob, (elclub) as nom_eq , nom_cor,dni_cor, carrera,procedencia, sex_cor,local_sn,minus_sn, socio_sn,federado,email,fna_cor, cat_cor,dom_cor, pob_cor, cantidad, chip, tiempoedicionanterior, (clu_cor) as cod_eq from corredor WHERE carrera='" & Session("usuario") & "'" & " and dni_cor not in (SELECT dni_cor FROM INSCRITOS IN '' [;DATABASE=" & Server.MapPath("CGI-BIN/PANEL1.MDB" & "] where carrera='" & Session("usuario") & "'" & ")"))
adodb5.Close()
Dim adodb6 As ADODB.Connection
adodb6 = New ADODB.Connection
Dim RST As ADODB.Recordset
RST = New ADODB.Recordset
adodb6.Open("PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("CGI-BIN/carreras/") & Session("BASEDATOS"))
adodb6.Execute("UPDATE([corredor])INNER JOIN [;Database=" & Server.MapPath("cgi-bin/panel1.mdb") & "].[inscritos] ON [inscritos].dni_cor = [corredor].dni_cor SET [inscritos].nom_cor = [corredor].nom_cor WHERE([inscritos].dni_cor = [corredor].dni_cor)")
Alguna idea?