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

actualizando registros de tablas relacionadas

Estas en el tema de actualizando registros de tablas relacionadas en el foro de ASP Clásico en Foros del Web. Tengo las siguientes tablas: TablaPersona id Nombre Apellido Email TablaAutos Auto modelo idPersona Las tablas están relacionadas por el id de TablaPersona y el idPersona ...
  #1 (permalink)  
Antiguo 11/12/2002, 19:33
 
Fecha de Ingreso: julio-2002
Mensajes: 447
Antigüedad: 21 años, 10 meses
Puntos: 0
actualizando registros de tablas relacionadas

Tengo las siguientes tablas:

TablaPersona
id
Nombre
Apellido
Email

TablaAutos

Auto
modelo
idPersona

Las tablas están relacionadas por el id de TablaPersona y el idPersona de TablaPersona. El id de TablaPersona se incrementa automáticamente.
Mi problema viene cuando hago la actualización. Cuando empiezo a grabar los campos de TablaPersona, necesito de alguna forma grabar el id que me incrementó automáticamente en TablaPersona en TablaAutos. Cuando trabajaba con Access con hacer un RS.Update, podía tomar el valor RS("id"), asignarlo a una variable, y usarlo después para grabarlo en la otra tabla. Pero ahora con SQL Server, no pasa esto, ya que al insertar los valores, no puedo tomar el valor del id (si se fijan en el Enterprise Manager el id lo incrementa siempre al final, cuando me muevo a otro registro). Lo hice funcionar, haciendo un RS.MoveNext y un RS.MovePrevious, pero supongo que debe haber una forma más correcta que ésta.
Muchas gracias por la ayuda.
  #2 (permalink)  
Antiguo 11/12/2002, 23:08
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 21 años, 6 meses
Puntos: 37
Lo arreglas con un bookmark:

Para eso, yo abro la tabla asi:

rsUsuario.CursorLocation = adUseClient

rsUsuario.Open "Usuarios Order By idUsuario", Application("conn"), adOpenDynamic, adLockOptimistic, adCmdTable

rsUsuario.AddNew

y luego, de actualizar, recuperas el ultimo registro agregado donde quedo el bookmark:

dim bookMark

rsUsuario.Update

bookMark = rsUsuario.AbsolutePosition

rsUsuario.Requery

rsUsuario.AbsolutePosition = bookMark

iKeyID = rsUsuario.Fields("idUsuario" )
  #3 (permalink)  
Antiguo 12/12/2002, 15:12
 
Fecha de Ingreso: julio-2002
Mensajes: 447
Antigüedad: 21 años, 10 meses
Puntos: 0
Funcionó

Muchas gracias, la verdad que no conocía esa propiedad (requery).
Ahora, hay algo que no entiendo. Qué hace específicamente CursorLocation? Por qué hay que ponerle adUseClient y no adUseServer (con este no funciona, supongo que es el default).
saludos, y muchas gracias nuevamente.
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 20:05.