Ver Mensaje Individual
  #11 (permalink)  
Antiguo 18/01/2010, 14:53
D_a_n_n_y
 
Fecha de Ingreso: enero-2010
Mensajes: 6
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Error: Terminó el tiempo de espera

Myakire efectivamente se trataba de un deadlock( Abrazo mortal ),

Al generar mi select y al hacer mi update usaba esta estructura:
recActVisitas.open str, cn, 0, 1

Le hice la modificacion a lo siguiente para ambos recordset :
recActVisitas.open str, cn, 2, 3

Y se solucionó el problema =D

Adjunto alguna informacion de estos números para las personas que no sabían mucho sobre el tipo de cursor y el cerrojo del cursor (asi como yo)

tipo de Cursor
Entendemos como cursor el puntero que nos permite desplazarnos por los registros del recordset. Dependiendo del tipo elegido determinaremos los desplazamientos y cambios realizables en los datos.

adOpenForwardOnly 0 Es el cursor por defecto, solo nos permite recorrer la tabla de forma secuencial (no se puede volver hacia atrás) y no permite modificaciones en los registros. Por contra es el de menos consumo. No vemos los cambios realizados en la tabla por otro recordset.
adOpenKeyset ( 1 ) Nos permite movernos en los dos sentidos, si permite modificaciones en los registros. Vemos los cambios realizados en la tabla por otro recordset a excepción de las nuevas altas.
adOpenDynamic ( 2 ) Nos permite movernos en los dos sentidos, si permite modificaciones en los registros. Vemos Todos los cambios realizados en la tabla por otro recordset.
adOpenStatic ( 3 ) Nos permite movernos en los dos sentidos, no permite modificaciones en los registros. No vemos los cambios realizados en la tabla por otro recordset.


tipo de Cerrojo
Entendemos como cerrojo el tipo de bloqueo que efectuaremos en la base de datos cuando modifiquemos un recordset, a fin de evitar que dos o mas usuarios accedan a modificar un mismo registro a la vez.

adLockReadOnly( 1 ) Es el defecto; no permite al usuario modificar los datos de la tabla.
dLockPessimistic ( 2 ) Cuando se abra la tabla nadie mas podrá hacerlo, este modo nos asegura la plena integridad de los datos.
adLockOptimistic ( 3 ) Cierra la tabla a los demás usuarios cuando se invoque al método Update del objeto recordset; de este modo la Base de datos quedará bloqueada menos tiempo que con el método anterior.

Por último muchas gracias a todos por intentar dar solución a mi problema.