Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/01/2006, 07:51
Avatar de Seixas
Seixas
 
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona
Mensajes: 60
Antigüedad: 21 años
Puntos: 0
Se puede actualizar varias tablas con el update en un sólo Recordset?

Saludos a todos,

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