¿Alguien sabe porque no graba el update?

05/07/2004 - 10:28 por fernando | Informe spam
Hola grupo, mi pregunta es bastante simple¿Porque puede ser que el adaptador
que estoy usando no graba los cambios realizados? Aca les dejo parte de
codigo:

sql ="Select * from Tabla1"

adaptador = new adaptador(sql, conexion)

comando = new oledbcommandbuilder(adaptador)

adaptador.insertcommand = comando.getinsertcommand
adaptador.deletecommand = comando.getdeletecommand
adaptador.updatecommand = comando.getupdatecommand

datosSet = new dataset

conexion.open
adaptador.fill(datosSet,"Tabla1")
conexion.close

dim enlace as binding
enlace = new binding("Text",datosSet,"Tabla1.Campo1)
textbox.databinding.add(enlace)
enlace = nothing

Private sub GraboParametros
conexion.open
adaptador.update(datosSet,"Tabla1") ''''''''''''' aca tendria que grabar
y no graba
datosSet.clear
adaptador.fill(datosSet,"Tabla1")
conexion.close
End Sub

Desde ya muchas gracias.
Fernando

Preguntas similare

Leer las respuestas

#11 Carlos Durán Urenda
08/07/2004 - 00:28 | Informe spam
Hola Fernando

Posiblemente no te esta grabando el metodo update por que no has configurado
los comandos de acutalizacion, eliminacion y adicion del adpatador
(InsertCommand, DeleteCommand y UpdateCommand)

Te recomiendo que le des una leida al objeto CommandBuilder en la ayuda


espero te sirva

Saludos
Carlos Duran

"fernando" escribió en el mensaje
news:O%
Hola grupo, mi pregunta es bastante simple¿Porque puede ser que el


adaptador
que estoy usando no graba los cambios realizados? Aca les dejo parte de
codigo:

sql ="Select * from Tabla1"

adaptador = new adaptador(sql, conexion)

comando = new oledbcommandbuilder(adaptador)

adaptador.insertcommand = comando.getinsertcommand
adaptador.deletecommand = comando.getdeletecommand
adaptador.updatecommand = comando.getupdatecommand

datosSet = new dataset

conexion.open
adaptador.fill(datosSet,"Tabla1")
conexion.close

dim enlace as binding
enlace = new binding("Text",datosSet,"Tabla1.Campo1)
textbox.databinding.add(enlace)
enlace = nothing

Private sub GraboParametros
conexion.open
adaptador.update(datosSet,"Tabla1") ''''''''''''' aca tendria que


grabar
y no graba
datosSet.clear
adaptador.fill(datosSet,"Tabla1")
conexion.close
End Sub

Desde ya muchas gracias.
Fernando


Respuesta Responder a este mensaje
#12 fernando
08/07/2004 - 17:03 | Informe spam
gracias , pero eh probado de todo y no logro hacerlo funcionar.

Fernando

"Carlos Durán Urenda" escribió en el mensaje
news:OM$
Hola Fernando

Posiblemente no te esta grabando el metodo update por que no has


configurado
los comandos de acutalizacion, eliminacion y adicion del adpatador
(InsertCommand, DeleteCommand y UpdateCommand)

Te recomiendo que le des una leida al objeto CommandBuilder en la ayuda


espero te sirva

Saludos
Carlos Duran

"fernando" escribió en el mensaje
news:O%
> Hola grupo, mi pregunta es bastante simple¿Porque puede ser que el
adaptador
> que estoy usando no graba los cambios realizados? Aca les dejo parte de
> codigo:
>
> sql ="Select * from Tabla1"
>
> adaptador = new adaptador(sql, conexion)
>
> comando = new oledbcommandbuilder(adaptador)
>
> adaptador.insertcommand = comando.getinsertcommand
> adaptador.deletecommand = comando.getdeletecommand
> adaptador.updatecommand = comando.getupdatecommand
>
> datosSet = new dataset
>
> conexion.open
> adaptador.fill(datosSet,"Tabla1")
> conexion.close
>
> dim enlace as binding
> enlace = new binding("Text",datosSet,"Tabla1.Campo1)
> textbox.databinding.add(enlace)
> enlace = nothing
>
> Private sub GraboParametros
> conexion.open
> adaptador.update(datosSet,"Tabla1") ''''''''''''' aca tendria que
grabar
> y no graba
> datosSet.clear
> adaptador.fill(datosSet,"Tabla1")
> conexion.close
> End Sub
>
> Desde ya muchas gracias.
> Fernando
>
>


Respuesta Responder a este mensaje
#13 Carlos Durán Urenda
08/07/2004 - 21:44 | Informe spam
ok Fer

Yo tambien me encontre con el mismo problema hasta que me puse a investigar
mas a fondo

Segun lo que he visto, tu DataSet es un almacen de datos en memoria, pero
esta desconectado fisicamente de la base de datos, de forma que aunque se
modifique, elimine o agregue informacion en el DataSet, esta no se ve
reflejada en el origen de datos

la forma de hacer que el Dataset pueda almanar informacion en la base de
datos es por medio de la configuracion de InsertCommand, Deletecommand y
UpdateCommand, del adaptador de datos, de forma que cuando ejecutas el
metodo Update, el Adaptador ejecuta El comando almacenado en InsertCommand
para los registros nuevos, el comando DeleteCommand para los registros
eliminados y el comando UpdateCommando para los registros con cambios, y es
entonces cuando tus modificaciones se ven reflejadas en la base de datos,
ahora, la configuracion de estos comandos puede ser manual, lo cual es
tedioso, pero eficiente, o bien, nos podemos ayudar del objeto auxiliar
CommandBuilder, que lo hace mucho mas facil, pero supuestamente es menos
eficiente ya que dicho objeto tiene que hacer un par de accesos a la base de
datos para obtener la informacion de los campos.

en Gral, el proceso de acualizacion para una base de datos por medio de
Oledb seria mas o menos asi

Dim Con as new OledbConnection("Cadena de Conexion")

Dim DA as new OledbDataAdapter("Instruccion Select", Con)

Dim DS as New DataSet
DA.FillSchema(DS,SchemaType.Source,"Nombre Tabla")

DA.Fill(DS,"Nombre Tabla")

' Crea el Command Builder
Dim CmdBuilder as New OledbCommandBuilder(DA)

' Genera los Comandos a partir del Command Builder
DA.InsertCommand=CmdBuilder.GetInsertCommand
DA.DeleteCommand=CmdBuilder.GetDeleteCommand
DA.UpdateCommand=CmdBuilder.GetUpdateCommand


' despues de esto el Adaptador queda configurado para almacenar los cambios
en la base


... modificaciones de registros...


DA.Update(DS, "Nombre Tabla")


Espero esto te sirva

"fernando" escribió en el mensaje
news:
gracias , pero eh probado de todo y no logro hacerlo funcionar.

Fernando

"Carlos Durán Urenda" escribió en el mensaje
news:OM$
> Hola Fernando
>
> Posiblemente no te esta grabando el metodo update por que no has
configurado
> los comandos de acutalizacion, eliminacion y adicion del adpatador
> (InsertCommand, DeleteCommand y UpdateCommand)
>
> Te recomiendo que le des una leida al objeto CommandBuilder en la ayuda
>
>
> espero te sirva
>
> Saludos
> Carlos Duran
>
> "fernando" escribió en el mensaje
> news:O%
> > Hola grupo, mi pregunta es bastante simple¿Porque puede ser que el
> adaptador
> > que estoy usando no graba los cambios realizados? Aca les dejo parte


de
> > codigo:
> >
> > sql ="Select * from Tabla1"
> >
> > adaptador = new adaptador(sql, conexion)
> >
> > comando = new oledbcommandbuilder(adaptador)
> >
> > adaptador.insertcommand = comando.getinsertcommand
> > adaptador.deletecommand = comando.getdeletecommand
> > adaptador.updatecommand = comando.getupdatecommand
> >
> > datosSet = new dataset
> >
> > conexion.open
> > adaptador.fill(datosSet,"Tabla1")
> > conexion.close
> >
> > dim enlace as binding
> > enlace = new binding("Text",datosSet,"Tabla1.Campo1)
> > textbox.databinding.add(enlace)
> > enlace = nothing
> >
> > Private sub GraboParametros
> > conexion.open
> > adaptador.update(datosSet,"Tabla1") ''''''''''''' aca tendria que
> grabar
> > y no graba
> > datosSet.clear
> > adaptador.fill(datosSet,"Tabla1")
> > conexion.close
> > End Sub
> >
> > Desde ya muchas gracias.
> > Fernando
> >
> >
>
>


Respuesta Responder a este mensaje
#14 fernando
12/07/2004 - 16:20 | Informe spam
gracias carlos; ahora mismo lo pruebo

Fernando
"Carlos Durán Urenda" escribió en el mensaje
news:
ok Fer

Yo tambien me encontre con el mismo problema hasta que me puse a


investigar
mas a fondo

Segun lo que he visto, tu DataSet es un almacen de datos en memoria, pero
esta desconectado fisicamente de la base de datos, de forma que aunque se
modifique, elimine o agregue informacion en el DataSet, esta no se ve
reflejada en el origen de datos

la forma de hacer que el Dataset pueda almanar informacion en la base de
datos es por medio de la configuracion de InsertCommand, Deletecommand y
UpdateCommand, del adaptador de datos, de forma que cuando ejecutas el
metodo Update, el Adaptador ejecuta El comando almacenado en InsertCommand
para los registros nuevos, el comando DeleteCommand para los registros
eliminados y el comando UpdateCommando para los registros con cambios, y


es
entonces cuando tus modificaciones se ven reflejadas en la base de datos,
ahora, la configuracion de estos comandos puede ser manual, lo cual es
tedioso, pero eficiente, o bien, nos podemos ayudar del objeto auxiliar
CommandBuilder, que lo hace mucho mas facil, pero supuestamente es menos
eficiente ya que dicho objeto tiene que hacer un par de accesos a la base


de
datos para obtener la informacion de los campos.

en Gral, el proceso de acualizacion para una base de datos por medio de
Oledb seria mas o menos asi

Dim Con as new OledbConnection("Cadena de Conexion")

Dim DA as new OledbDataAdapter("Instruccion Select", Con)

Dim DS as New DataSet
DA.FillSchema(DS,SchemaType.Source,"Nombre Tabla")

DA.Fill(DS,"Nombre Tabla")

' Crea el Command Builder
Dim CmdBuilder as New OledbCommandBuilder(DA)

' Genera los Comandos a partir del Command Builder
DA.InsertCommand=CmdBuilder.GetInsertCommand
DA.DeleteCommand=CmdBuilder.GetDeleteCommand
DA.UpdateCommand=CmdBuilder.GetUpdateCommand


' despues de esto el Adaptador queda configurado para almacenar los


cambios
en la base


... modificaciones de registros...


DA.Update(DS, "Nombre Tabla")


Espero esto te sirva

"fernando" escribió en el mensaje
news:
> gracias , pero eh probado de todo y no logro hacerlo funcionar.
>
> Fernando
>
> "Carlos Durán Urenda" escribió en el mensaje
> news:OM$
> > Hola Fernando
> >
> > Posiblemente no te esta grabando el metodo update por que no has
> configurado
> > los comandos de acutalizacion, eliminacion y adicion del adpatador
> > (InsertCommand, DeleteCommand y UpdateCommand)
> >
> > Te recomiendo que le des una leida al objeto CommandBuilder en la


ayuda
> >
> >
> > espero te sirva
> >
> > Saludos
> > Carlos Duran
> >
> > "fernando" escribió en el mensaje
> > news:O%
> > > Hola grupo, mi pregunta es bastante simple¿Porque puede ser que el
> > adaptador
> > > que estoy usando no graba los cambios realizados? Aca les dejo parte
de
> > > codigo:
> > >
> > > sql ="Select * from Tabla1"
> > >
> > > adaptador = new adaptador(sql, conexion)
> > >
> > > comando = new oledbcommandbuilder(adaptador)
> > >
> > > adaptador.insertcommand = comando.getinsertcommand
> > > adaptador.deletecommand = comando.getdeletecommand
> > > adaptador.updatecommand = comando.getupdatecommand
> > >
> > > datosSet = new dataset
> > >
> > > conexion.open
> > > adaptador.fill(datosSet,"Tabla1")
> > > conexion.close
> > >
> > > dim enlace as binding
> > > enlace = new binding("Text",datosSet,"Tabla1.Campo1)
> > > textbox.databinding.add(enlace)
> > > enlace = nothing
> > >
> > > Private sub GraboParametros
> > > conexion.open
> > > adaptador.update(datosSet,"Tabla1") ''''''''''''' aca tendria


que
> > grabar
> > > y no graba
> > > datosSet.clear
> > > adaptador.fill(datosSet,"Tabla1")
> > > conexion.close
> > > End Sub
> > >
> > > Desde ya muchas gracias.
> > > Fernando
> > >
> > >
> >
> >
>
>


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