Buenos días a toda la comunidad. Espero que todo el mundo esté bien.
Me encuentro realizando un módulo de importación de información entre bases de datos diferentes, siendo la primera perteneciente a un ERP (ADempiere) con n cantidad de tablas, de las cuales sólo empleo 7 tablas que están relacionadas entre sí. Para ello he creado una base de datos propia en la que se importan las tablas que necesito, omitiendo las relaciones que existen entre éstas.
El scritp que he desarrollado hasta este momento es el siguiente.
Public Sub SincronizarProducto()
Dim objConexionAdp As New ConexionDB
Dim objConexionSPIA As New ConexionDB
Dim lector As NpgsqlDataReader
Try
Dim queryConsulta As String = "
SELECT m_product_id as idproducto, c_uom.name as unidad, value as claveproducto, m_product.name as descripcion
FROM m_product
left join
c_uom on c_uom.c_uom_id=m_product.c_uom_id
where m_product.isActive='Y' and m_product.ad_client_id=1000000"
Dim comando As New NpgsqlCommand()
comando.CommandText = queryConsulta
comando.Connection = objConexionAdp.ConectarADP()
lector = comando.ExecuteReader()
Dim queryInsert As String = ""
Dim comandoSPI As New NpgsqlCommand()
comandoSPI.Connection = objConexionSPIA.ConectarSPI()
While lector.Read()
Try
Console.WriteLine(lector("claveproducto"))
queryInsert = "insert into m_producto(m_product_id, claveproducto, descripcion, unidad) values('" & lector("idproducto") & "','" & lector("claveproducto") & "','" & lector("descripcion") & "','" & lector("unidad") & "')"
comandoSPI.CommandText = queryInsert
comandoSPI.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message, vbCritical, "Sincroniza.SicronizarProducto()")
End Try
End While
lector.Close()
MsgBox("FinProds")
SincronizarAd_client()
Catch ex As Exception
MsgBox(ex.Message, vbCritical, "Sincroniza.SicronizarProducto()")
End Try
End Sub
Mi duda es
1.-¿Existe algún método para simplificar este proceso, importando la información de la base de datos, respetando las relaciones que existen?
Por su amable atención muchas gracias