he estado buscando por el foro pero no he encontrado solución a mi problema. Verán:
Estoy cargando en un recordset campos de varias tablas. Recojo los valores y los modifico segun el valor que tenían, y ahora quiero meterlos de nuevo en sus correspondientes tablas mediante rs.Update, pero me da el siguiente error:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access Driver] Cannot update. Database or object is read-only.
El probema es que al tratarse de un recordset de varias tablas me dice que mi BD es de sólo lectura, cuando no es así porque todos los demás recordsets, commands, y updates funcionan correctamente. He confirmado esta teoria cuando del recordset he quitado todo lo que hacía mención a una de las dos tablas.
Entonces mi duda es la siguiente: ¿Se puede hacer un update de varias tablas en un mismo recordset a la vez? Si es posible, ¿cómo lo harían?
Les adjunto el código por si no han entendido bien mi explicación. Gracias por su ayuda.
Código:
Set rs_actualitzarCiutadaAvatar = Server.CreateObject("ADODB.Recordset") rs_actualitzarCiutadaAvatar.ActiveConnection = connect_cedb rs_actualitzarCiutadaAvatar.Source = "SELECT ciuPropietariID, punts, Avatars.nom, alias, imatge FROM Avatars, Ciutadans WHERE Avatars.avatID = " & avatarID & " AND Ciutadans.ciuID = " & ciutadaID rs_actualitzarCiutadaAvatar.CursorType = 3 rs_actualitzarCiutadaAvatar.LockType = 2 rs_actualitzarCiutadaAvatar.Open() Response.Write(rs_actualitzarCiutadaAvatar.Recordcount & "<br>") If NOT rs_actualitzarCiutadaAvatar.EOF Then intPuntsCiutada = rs_actualitzarCiutadaAvatar("punts") strAliasCiutada = rs_actualitzarCiutadaAvatar("alias") intPuntsCiutada = intPuntsCiutada - intPuntsApropiarseAvatar rs_actualitzarCiutadaAvatar("punts") = CInt(intPuntsCiutada) rs_actualitzarCiutadaAvatar("ciuPropietariID") = CInt(ciutadaID) rs_actualitzarCiutadaAvatar(2) = CStr(strAliasCiutada) rs_actualitzarCiutadaAvatar.Update() End If rs_actualitzarCiutadaAvatar.Close() Set rs_actualitzarCiutadaAvatar = Nothing