Foros del Web » Programando para Internet » ASP Clásico »

Se puede actualizar varias tablas con el update en un sólo Recordset?

Estas en el tema de Se puede actualizar varias tablas con el update en un sólo Recordset? en el foro de ASP Clásico en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 28/01/2006, 07:51
Avatar de Seixas  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona
Mensajes: 60
Antigüedad: 20 años, 1 mes
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
  #2 (permalink)  
Antiguo 28/01/2006, 11:29
Avatar de asm_mripZ  
Fecha de Ingreso: febrero-2002
Ubicación: Panamá
Mensajes: 212
Antigüedad: 22 años, 3 meses
Puntos: 0
Saludos, puede que esto te sirva http://dmxzone.com/ShowDetail.asp?NewsId=4408
__________________
-- May the LinuxForce be with you --
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:44.