Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: icisneros en 27 Noviembre 2006, 17:09 pm



Título: Problema extraño con ADO
Publicado por: icisneros en 27 Noviembre 2006, 17:09 pm
Tengo un extraño problema al usar ADO para conectar a una base de datos.

El caso es que me conecta bien, hago una consulta en sql y la hace bien, muestro los datos en un textbox asignandole la propiedad datafield al campo que quiero que me muestre.

Luego modifico ese campo en el textbox pulso un botón que tiene el evento Adodc1.recordset.update y al volver a buscar ese registro no me ha guardado los cambios que he hecho en el textbox.

Además si la busqueda no la hago de un registro sino de toda la tabla y voy moviendome por los registros, si modifico uno y pulso para moverme al siguiente registro me dice: operación cancelada en un msgbox.

Si ejecuto la opcion Adodc1.recordset.delete lo hace bien y me elimina el registro actual.

Entonces porqué no me actualiza? Qué hago mal?

Un saludo!


Título: Re: Problema extraño con ADO
Publicado por: soplo en 27 Noviembre 2006, 17:16 pm
Hola
¿Podrías indicar como tienes abierto ese recordset y la conexión subyacente?

Porque si estas utilizando un usuario que no tiene derecho a actualización nop actualizarás y si estas utilizando un cursor estatico por ejemplo actualizarás, pero no verás los cambios.

Un saludo


Título: Re: Problema extraño con ADO
Publicado por: icisneros en 27 Noviembre 2006, 17:58 pm
La conexion la hago así:

Código:
AdoBD.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Ru
taBD & ";Persist Security Info=False"
   
    LblEstado.Caption = "Conexión con la base de datos: OK"
   
    AdoBD.CursorLocation = adUseClient
Código:


La búsqueda la hago así:

Código:
'Buscamos la tarjeta y sacamos los datos
        AdoBD.RecordSource = "Select * from Tarjetas where Número=" & ntarjeta
        AdoBD.Refresh
       
        txtimpresa.DataField = "Impreso"

Ahí ya me aparecen los datos en txtimpresa, pero luego cuando los modifico y quiero que se guarden, meto este código:

Código:
AdoBD.Recordset.Update
    AdoBD.Refresh

Pero no actualiza la base de datos, yo creo que me estoy dejando alguna chorrada o no sé, había programado ya alguna vez más en vb contra bases de datos y no había tenido problemas, no sé que pasa pero algo me dejo.

El tipo de cursor lo tengo como AdOpenKeySet

Si yo abro la base de datos desde access me deja modificarla, de hecho tiene permisos de lectura/escritura/ejecución.

Cuál puede ser el problema?

Un saludo!!