Problema con un recorset de ADO

Hola y gracias de antemano. Resulta que tengo una BD en IBM DB2 y estoy haciendo un aplicación de gestión en visual basic que gestiona datos de esa BD. Mi problema es que cuando quiero modificar un registro en concreto, abro un recordset con una consulta SQL en la que me selecciona solo el registro a modificar de la tabla, me sitúo en ese registro con el método "Mi_Recorset.MoveFirst", doy valores a los campos, ejecuto la sentencia "Mi_Recordset.Update" pero veo que no me actualiza, en cambio con otros recordsets sobre otras tablas, si que actualiza, al igual que para meter registros nuevos, pero en esa tabla en concreto, no puedo modificar datos, ¿sabes cómo puedo solucionarlo?. Gracias.

3 respuestas

Respuesta
1
Pueden ser varios motivos...
A ver:
¿Cómo abrís el bloqueo de la tabla?
¿Ejecutas el EDIT antes?
¿Abrís la tabla o una copia?
Mandame la instrucción en la cual abrís el RecordSet !
Hola, así es como abro la conexión:
Set ModuloBD.cn = New ADODB.Connection
ModuloBD.cn.ConnectionString= "Provider=MSDASQL.1;Password=pozi2002;Persist Security Info=False;User ID=pozimanuela;Data Source=GYMCOL;Mode=ReadWrite"
ModuloBD.cn.Open
y así abro el recordset:
Set ModuloBD.rcReclamacion = New ADODB.Recordset
consulta = "SELECT * FROM ALMACEN.TBLRECLAMACIONES WHERE IDRECLAMACION=35"
ModuloBD.rcReclamacion.Open consulta, ModuloBD.cn, adOpenKeyset, adLockOptimistic, adCmdUnknown
Espero que te sirva de algo, gracias.
El caso es que si mete los datos nuevos, osea que si le entran los nuevos valores, pero el método Update es como si no funcionara, como si no actualizara en la BD.
El método "Edit" no vale para ADO, solo en RDO y DAO.
Creo que el adOpenKeyset es lo que no te deja ver los registros... mira lo siguiente. ¿Y aparte usas el BeginTtans para actualizar?
Tipo de cursor: adOpenForwardOnly, sólo permite desplazarse hacia adelante en los registros
AdOpenKeyset, Igual que un cursor dinámico, excepto que no se pueden ver los registros que agregan otros usuarios
adOpenDynamic, Las incorporaciones, cambios y eliminaciones que hacen otros usuarios permanecen visibles, y se admiten todo tipo de movimientos entre registros
adOpenStatic, Cursor estático. Una copia estática de un conjunto de registros que se puede usar para buscar datos o generar informes. Las incorporaciones, cambios o eliminaciones que hacen otros usuarios no son visibles.
Tipo de bloqueo: adLockReadOnly, Predeterminado. Sólo lectura- no puede modificar los datos
AdLockPessimistic, Bloqueo pesimista, registro a registro: el proveedor hace lo necesario para asegurar la modificación correcta de los registros, generalmente bloqueando registros en el origen de datos durante el proceso de modificación
AdLockOptimistic, Bloqueo optimista, registro a registro: el proveedor usa bloqueo optimista, bloqueando registros sólo cuando llama al método Update.
AdLockBatchOptimistic, Actualizaciones optimistas por lotes: requirido para el modo de actualización por lotes como contraposición al modo de actualización inmediata.
Opciones: adCmdTest, Se utiliza cuando necesito abrir una consulta SQL
AdCmdTable, Para abrir una tabla o vista
Respuesta
1
Vale la aclaración, pero revisa el tema de los premisos, debe estar por ahí.
Abrí el archivo de base de datos directamente con el Access y fíjate si te pide algo en el momento de modificar esa tabla.
Respuesta
1
Pero puede ser un problema de permisos en la base de datos o un daño físico de la tabla, eso lo tienes que ver con el administrador de la base de datos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas