Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Ayuda!! Como reservar un registro

Estas en el tema de Ayuda!! Como reservar un registro en el foro de SQL Server en Foros del Web. Hola a todos. Tengo un problema severo. Paso al detalle. (Programo en php). Tengo una tabla clientes, y desde un sistema web desde varios lugares ...
  #1 (permalink)  
Antiguo 26/08/2010, 06:15
 
Fecha de Ingreso: octubre-2009
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Ayuda!! Como reservar un registro

Hola a todos. Tengo un problema severo. Paso al detalle. (Programo en php).
Tengo una tabla clientes, y desde un sistema web desde varios lugares se accede a esa base para comunicarse con dichos clientes, hay varios operadores.
Es decir el operador abre el sistema y le trae el primer registro para comunicarse con el cliente. Aqui el problema, el operador 2 se conecta y le trae el mismo registro. Quiero que le traiga el proximo registro. Para que no llamen dos personas al mismo cliente.
Desde ya muchas gracias
  #2 (permalink)  
Antiguo 26/08/2010, 06:51
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: Ayuda!! Como reservar un registro

Aún cuando encuentres alguna manera de hacer un lock sobre el registro con alguna sentencia SQL, esto es algo que deberías resolver tratándolo como un caso de uso más de la aplicación, un cliente siendo atendido por un operador es un estado de la clase cliente que deberías almacenar en base de datos.

Saludos
  #3 (permalink)  
Antiguo 26/08/2010, 21:06
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Ayuda!! Como reservar un registro

Esto YA LO PLATICAMOS, e incluso, di la solucion (despues de haber trabajado durante 5 años para un call center).

Debes "flagear" el registro con el numero del operador que lo esta "usando".

Esto es, en tu tabla CLIENTE, agrega una columna con el ID del operador, cuando lo "tome", le das un UPDATE a es registro con el numero de operador, cuando lo "des-ocupe", se lo quitas.

Asi de simple
  #4 (permalink)  
Antiguo 30/08/2010, 06:45
 
Fecha de Ingreso: octubre-2009
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Ayuda!! Como reservar un registro

Hola iislas. Supuse que por ahí venia el tema. De echo lo tengo así. El tema es que hacer si el el operador me sierra el navegador desde la "X". Como hago para hacer un roolback y volver a dejar el registro disponible. Agradeceria tu comentario
  #5 (permalink)  
Antiguo 30/08/2010, 10:26
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Ayuda!! Como reservar un registro

Porque tu flag, podría estar acompañado de una fecha y aquellos que cumplan un cierto tiempo de añejamiento, les quitas dichos flag's, todo esto mediante un job que se ejecute, por ejemplo, cada madrugada o bien como comente antes, que tengan un cierto tiempo de "añejamiento".

Un operador, no puede "quedarse" con un registro mas de "x" tiempo, eso lo debes definir en conjunto con la gente que maneja dicho aplicativo.
  #6 (permalink)  
Antiguo 30/08/2010, 13:24
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: Ayuda!! Como reservar un registro

No programo en php, pero supongo que otra alternativa podría ser generar un evento al caducar la sesión del operador, esto podría liberar el estado del cliente en base de datos, hay más info sobre sesiones aquí http://www.php.net/manual/es/book.session.php

Por otro lado, para simplificar la propuesta de iislas, si tienes en la tabla clientes el identificador del operador más la fecha y hora en la que empezó el "lock", no haría falta un job para eliminar el flag, podrías considerar clientes no atendidos a los que tienen un null en el identificador de operador más los que tienen getdate()-fecha_atendido > tiempo_de_caducidad.

Saludos
  #7 (permalink)  
Antiguo 30/08/2010, 14:00
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Ayuda!! Como reservar un registro

matanga

Pero cuando el operador cierra inesperadamente su aplicativo, el registro se deja bloqueado por dicho operador.

Otra solucion, seria que cuando un operador quiera tomar un registro, le mande el que actualmente tiene bloqueado, asi forzaria a dicho operador a CERRAR ADECUADAMENTE dicho registro
  #8 (permalink)  
Antiguo 30/08/2010, 14:13
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: Ayuda!! Como reservar un registro

Cita:
Pero cuando el operador cierra inesperadamente su aplicativo, el registro se deja bloqueado por dicho operador.
Si, a lo que me refería es a considerar un registro como desbloqueado cuando cumpla cualquiera de las dos condiciones, o tiene identificador null o tiene fecha de bloqueo mas antigua que la caducidad, así se evita el job.

Cita:
Otra solucion, seria que cuando un operador quiera tomar un registro, le mande el que actualmente tiene bloqueado, asi forzaria a dicho operador a CERRAR ADECUADAMENTE dicho registro
jeje esta me gusta, así se crea cultura en los usuarios a utilizar correctamente las aplicaciones.

bueno, si que se han dado opciones..

Saludos
  #9 (permalink)  
Antiguo 31/08/2010, 08:10
 
Fecha de Ingreso: octubre-2009
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Ayuda!! Como reservar un registro

Gracias a todos por las opiniones. Los resolvi sacando un poco de cada uno. En sintesis el operador entra y le da un registro. Grabo su id como control(para que no le de el registro a otro), fecha-hora y un campo "respuesta si/no". Si cumplio su tarea, para que le de un nuevo registro tiene que grabar el si (por defecto esta en no).
Si se duerme 10 minutos con el registro lo deslogueo, y pongo el control en 0 de nuevo para el proximo. Si sale por la "X" en vez de "desconectarse"(deberia ir y Ca-rag-lo a trompadas, pero no puedo)entonces para liberar el registro modifique el select, ahora pregunta primero si hay registros con control mayores a 0, con respuesta igual a no y con fecha-hora menor a fecha-hora actual menos 12. Si encuentra quiere decir que uno cerro mal y lo vuevo a usar si no hay registros busco los que estan en cero. Que tal !!! Les gusto!! Bueno como dije antes muchas gracias a todos.
  #10 (permalink)  
Antiguo 31/08/2010, 10:34
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Ayuda!! Como reservar un registro

Mira, primero deberias buscar (cuando el se logea y desea un nuevo registro), si ya tiene uno asignado (con su id), de ser asi, se lo RESTREGAS en la pc, hasta que lo termine de ocupar como debe ser.
__________________
MCTS Isaias Islas

Etiquetas: registro
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:32.