Actualizar Tabla SQLServer desde Tabla MS Access(.MDB)

15/03/2005 - 15:53 por kirck | Informe spam
Tengo una tabla access desde donde ingreso datos
pero hay otro proceso donde debo recuperar los datos agregados a esa tabla
access e insertarlos a mi Tabla en SQLServer
que métodos existen que sean mas faciles que recorrer uno a uno.
Gracias

Preguntas similare

Leer las respuestas

#1 A.Poblacion
15/03/2005 - 23:09 | Informe spam
"kirck" wrote in message
news:
Tengo una tabla access desde donde ingreso datos
pero hay otro proceso donde debo recuperar los datos agregados a esa tabla
access e insertarlos a mi Tabla en SQLServer
que métodos existen que sean mas faciles que recorrer uno a uno.



Genera un DTS en SQLServer que haga el traspaso de datos y configura el
Sql Server Agent para que lo lance con la periodicidad que te interese. De
esta forma no tienes que programar nada.

Otra cosa que se me ocurre es usar un DataAdapter contra la tabla Access,
hacer un Fill para cargarla en un DataSet, y usar otro DataAdapter
configurado contra SqlServer y mandarle hacer un Update desde el mismo
DataSet (tendrás que "tocar" todas las filas para que el DataSet las
considere "modificadas").
Respuesta Responder a este mensaje
#2 kirck
16/03/2005 - 21:58 | Informe spam
Hice esta rutina pero el dataset dsSQL no guarda los data en mi base de
datos SQLServer, pero el dataset se llena con los datos adecuados a travez
del merge()
¿que me falta?

Sub AgregaMDB()
Dim connMdb As New OleDb.OleDbConnection
Dim commMdb As New OleDb.OleDbCommand
Dim dsmdb As New DataSet
Dim dsSql As New DataSet
Dim conn As New SqlClient.SqlConnection
Dim comm As New SqlClient.SqlCommand
Try
connMdb.ConnectionString = conexionMDB
connMdb.Open()
commMdb.Connection = connMdb
commMdb.CommandText = "Select MotoNave, Viaje from CtrlEmb"
commMdb.CommandType = CommandType.Text
Dim da As OleDb.OleDbDataAdapter = New
OleDb.OleDbDataAdapter(commMdb)
da.Fill(dsmdb)
connMdb.Close()

conn.ConnectionString = conexionSQL
conn.Open()
comm.Connection = conn
comm.CommandText = "Select MotoNave, Viaje from CtrlEmb"
comm.CommandType = CommandType.Text
Dim sqlDa As SqlClient.SqlDataAdapter = New
SqlClient.SqlDataAdapter(comm)
sqlDa.Fill(dsSql)
dsSql.Merge(dsmdb)
dsSql.AcceptChanges()
conn.Close()

dsSql.WriteXml("C:\datos.xml") '<- Llena bien los datos

Catch e As OleDb.OleDbException
MessageBox.Show(e.Message)
End Try
End Sub

"A.Poblacion" escribió en
el mensaje news:%
"kirck" wrote in message
news:
Tengo una tabla access desde donde ingreso datos
pero hay otro proceso donde debo recuperar los datos agregados a esa
tabla
access e insertarlos a mi Tabla en SQLServer
que métodos existen que sean mas faciles que recorrer uno a uno.



Genera un DTS en SQLServer que haga el traspaso de datos y configura el
Sql Server Agent para que lo lance con la periodicidad que te interese. De
esta forma no tienes que programar nada.

Otra cosa que se me ocurre es usar un DataAdapter contra la tabla
Access,
hacer un Fill para cargarla en un DataSet, y usar otro DataAdapter
configurado contra SqlServer y mandarle hacer un Update desde el mismo
DataSet (tendrás que "tocar" todas las filas para que el DataSet las
considere "modificadas").



Respuesta Responder a este mensaje
#3 A.Poblacion
16/03/2005 - 22:29 | Informe spam
"kirck" wrote in message
news:
Hice esta rutina pero el dataset dsSQL no guarda los data en mi base de
datos SQLServer, pero el dataset se llena con los datos adecuados a travez
del merge()
¿que me falta?



Te falta definirle el InsertCommand al sqlDa. Solo le has definido el
SelectCommand.
Si quieres que se genere automáticamente puedes agregarle un
SqlCommandBuilder:
SqlCommandBuilder cb = new SqlCommandBuilder(sqlDa);
Respuesta Responder a este mensaje
#4 kirck
16/03/2005 - 23:47 | Informe spam
el tiene alrededor de 20 parametros ¿existe algun metodo para hacer menos
tedioso que solo ingresando codigo?
al parecer .Net nos está haciendo mas pesada la tarea de generacion de
codigo o quizas yo no conosco las metodologias apropiadas

"A.Poblacion" escribió en
el mensaje news:
"kirck" wrote in message
news:
Hice esta rutina pero el dataset dsSQL no guarda los data en mi base de
datos SQLServer, pero el dataset se llena con los datos adecuados a
travez
del merge()
¿que me falta?



Te falta definirle el InsertCommand al sqlDa. Solo le has definido el
SelectCommand.
Si quieres que se genere automáticamente puedes agregarle un
SqlCommandBuilder:
SqlCommandBuilder cb = new SqlCommandBuilder(sqlDa);


Respuesta Responder a este mensaje
#5 A.Poblacion
17/03/2005 - 07:53 | Informe spam
"kirck" wrote in message
news:ezG$
el tiene alrededor de 20 parametros ¿existe algun metodo para hacer menos
tedioso que solo ingresando codigo?
al parecer .Net nos está haciendo mas pesada la tarea de generacion de
codigo o quizas yo no conosco las metodologias apropiadas



Sí que hay un método menos tedioso. Si añades la línea que te he dicho:
SqlCommandBuilder cb = new SqlCommandBuilder(sqlDa);
entonces se generan automáticamente el InsertCommand, SelectCommand y
UpdateCommand, ya que el SqlCommandBuilder deduce su estructura a partir de
la Select sin que tengas que meter ningún parámetro a mano.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida