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

#11 kirck
17/03/2005 - 23:32 | Informe spam
en el Watch me aparece que el InsertCommand no titne nada : Nothing

al parecer el SqlCommandBuilder no está funcionando



"A.Poblacion" escribió en
el mensaje news:

"kirck" wrote in message
news:
Tambien agregué:
sqlDa.Update(dsSql, "Naves")



Tienes que QUITAR el AcceptChanges. Esta instrucción marca el dataset
como "actualizado" y por tanto el "Update" no graba nada.


Respuesta Responder a este mensaje
#12 kirck
18/03/2005 - 15:22 | Informe spam
Así está actualmente mi procedimiento

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 = strConnMDB

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 = strConnSQL

conn.Open()

comm.Connection = conn

comm.CommandText = "Select MotoNave, Viaje" _

& " from CtrlEmb"

comm.CommandType = CommandType.Text

Dim sqlDa As SqlDataAdapter = New SqlDataAdapter(comm)

Dim cb As SqlCommandBuilder = New SqlCommandBuilder(sqlDa)

sqlDa.MissingSchemaAction = MissingSchemaAction.AddWithKey

sqlDa.Fill(dsSql, "Table")

dsSql.Merge(dsmdb)

'dsSql.AcceptChanges() <-aqui ya prové activando esta instruccion

sqlDa.Update(dsSql, "Table")

conn.Close()

dsSql.WriteXml("C:\dssql.xml") ' aqui se ven bien los datos que necesito

Catch e As OleDb.OleDbException

MsgBox(e.Message)

Catch ex As SqlClient.SqlException

MsgBox(ex.Message)

End Try

End Sub

"A.Poblacion" escribió en
el mensaje news:

"kirck" wrote in message
news:
Tambien agregué:
sqlDa.Update(dsSql, "Naves")



Tienes que QUITAR el AcceptChanges. Esta instrucción marca el dataset
como "actualizado" y por tanto el "Update" no graba nada.


Respuesta Responder a este mensaje
#13 A.Poblacion
18/03/2005 - 19:29 | Informe spam
El procedimiento en general tiene ahora muy buen aspecto. Lo único que se me
ocurre a mi que puede estar fallando es que el método Merge deje las filas
que añade marcadas como "unchanged", en lugar de "added", que sería lo que
haría falta para que esto funcionara.

Yo probaría, por si acaso, a sustituir el dsSql.Merge(dsmdb) por algo asi
como esto:

Dim R as DataRow
For Each R in dsmdb.Tables(0).Rows
dsSql.Tables(0).Rows.Add(R.ItemArray)
Next

A ver si asi funciona.

"kirck" wrote in message
news:
Así está actualmente mi procedimiento

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 = strConnMDB

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 = strConnSQL

conn.Open()

comm.Connection = conn

comm.CommandText = "Select MotoNave, Viaje" _

& " from CtrlEmb"

comm.CommandType = CommandType.Text

Dim sqlDa As SqlDataAdapter = New SqlDataAdapter(comm)

Dim cb As SqlCommandBuilder = New SqlCommandBuilder(sqlDa)

sqlDa.MissingSchemaAction = MissingSchemaAction.AddWithKey

sqlDa.Fill(dsSql, "Table")

dsSql.Merge(dsmdb)

'dsSql.AcceptChanges() <-aqui ya prové activando esta instruccion

sqlDa.Update(dsSql, "Table")

conn.Close()

dsSql.WriteXml("C:\dssql.xml") ' aqui se ven bien los datos que necesito

Catch e As OleDb.OleDbException

MsgBox(e.Message)

Catch ex As SqlClient.SqlException

MsgBox(ex.Message)

End Try

End Sub

"A.Poblacion" escribió en
el mensaje news:
>
> "kirck" wrote in message
> news:
>> Tambien agregué:
>> sqlDa.Update(dsSql, "Naves")
>
> Tienes que QUITAR el AcceptChanges. Esta instrucción marca el dataset
> como "actualizado" y por tanto el "Update" no graba nada.
>
>


Respuesta Responder a este mensaje
#14 kirck
18/03/2005 - 22:42 | Informe spam
Me genera otros problemas de actualizacion de los registros por repeticion
de la Key

voy a probar grabar el dataset en un archivo XML y luego recuperarlo en un
dataset para hacer un merge
con mi dataset : dsSQL


"A.Poblacion" escribió en
el mensaje news:%23$IE7h%
El procedimiento en general tiene ahora muy buen aspecto. Lo único que se
me
ocurre a mi que puede estar fallando es que el método Merge deje las filas
que añade marcadas como "unchanged", en lugar de "added", que sería lo que
haría falta para que esto funcionara.

Yo probaría, por si acaso, a sustituir el dsSql.Merge(dsmdb) por algo asi
como esto:

Dim R as DataRow
For Each R in dsmdb.Tables(0).Rows
dsSql.Tables(0).Rows.Add(R.ItemArray)
Next

A ver si asi funciona.

"kirck" wrote in message
news:
Así está actualmente mi procedimiento

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 = strConnMDB

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 = strConnSQL

conn.Open()

comm.Connection = conn

comm.CommandText = "Select MotoNave, Viaje" _

& " from CtrlEmb"

comm.CommandType = CommandType.Text

Dim sqlDa As SqlDataAdapter = New SqlDataAdapter(comm)

Dim cb As SqlCommandBuilder = New SqlCommandBuilder(sqlDa)

sqlDa.MissingSchemaAction = MissingSchemaAction.AddWithKey

sqlDa.Fill(dsSql, "Table")

dsSql.Merge(dsmdb)

'dsSql.AcceptChanges() <-aqui ya prové activando esta instruccion

sqlDa.Update(dsSql, "Table")

conn.Close()

dsSql.WriteXml("C:\dssql.xml") ' aqui se ven bien los datos que necesito

Catch e As OleDb.OleDbException

MsgBox(e.Message)

Catch ex As SqlClient.SqlException

MsgBox(ex.Message)

End Try

End Sub

"A.Poblacion" escribió
en
el mensaje news:
>
> "kirck" wrote in message
> news:
>> Tambien agregué:
>> sqlDa.Update(dsSql, "Naves")
>
> Tienes que QUITAR el AcceptChanges. Esta instrucción marca el dataset
> como "actualizado" y por tanto el "Update" no graba nada.
>
>






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida