Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-10-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Hola, veamos, tenemos a taquillera1 (T1), taquillera2 (T2), cliente1 (C1) y cliente2 (C2)

Llegan los C1 y C2 al mismo tiempo ante la T1 y la T2, la situación en ese momento de la 1ª fila es esta:
1ª fila: XXXXX__XXXXX__OOOXX__XXXXX

C1. hola, quiero 2 asientos en 1ª fila
C2. hola, quiero 2 asientos en 1ª fila
T1. pincha en las dos butacas de pasillo que están libres y se cambia su valor a ocupado (se hace un post_event para que se actualice la pantalla de las demás taquilleras), por lo que verán todas esto:
1ª fila: XXXXX__XXXXX__XXOXX__XXXXX
T2. Lo siento, en 1ª fila sólo queda una butaca libre


Otro caso:
Llegan los C1 y C2 al mismo tiempo ante la T1 y la T2, la situación en ese momento de la 1ª fila es esta:
1ª fila: XXXXX__XXXXX__OOOXX__XXXXX

C1. hola, quiero 2 asientos en 1ª fila
C2. hola, quiero 2 asientos en 1ª fila
T1. mira la pantalla y dice, muy bien hay 2 butacas libres, ¿las quiere?
T2. pincha en las dos butacas de pasillo que están libres y se cambia su valor a ocupado (se hace un post_event para que se actualice la pantalla de las demás taquilleras), por lo que verán todas esto:
1ª fila: XXXXX__XXXXX__XXOXX__XXXXX
C1. Sí, quiero las 2 butacas de primera fila
T1. Lo siento, justo se han vendido, sólo queda una butaca, tendrá que ser en otra fila.

Resumiendo, las taquilleras no deben decir si está libre o están ocupadas, sólo deben marcarlas y si el sistema (tu programa) las acepta es que ha sido la primera en vender esas butacas, a las demás se les actualiza la pantalla y verán que ahora están ocupadas.

post_event es un evento de la BD firebird que se dispara al hacer post y puedes interceptarlo para hacer lo que quieras, en este caso lo usas para hacer un refresh de los datos que muestran la representación gráfica de las butacas.
Responder Con Cita
  #2  
Antiguo 22-10-2012
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Poder: 24
ASAPLTDA Va por buen camino
Thumbs up Capturando El Post Event

[quote=
post_event es un evento de la BD firebird que se dispara al hacer post y puedes interceptarlo para hacer lo que quieras, en este caso lo usas para hacer un refresh de los datos que muestran la representación gráfica de las butacas.[/QUOTE]

Hola casimiro ya mes has dado el 100% de la solucion del problema , muchas gracias.

Solo quisiera preguntar por ultimo: Como capturo el post event, uso los componentes sql-direct para leer los datos de firebird y estos no tienen el componente para capturar el post-event, me podrías indicar como lo capturo, no se que componente para capturar los mensajes (podria ser los indy aunque no los conosco) me podrias dar una orientacion
Responder Con Cita
  #3  
Antiguo 22-10-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Mira este documento pdf, también puedes hacer una búsqueda por post_event, se ha tratado en diversas ocasiones y encontrarás ejemplos y dudas de otros usuarios que se han solucionado.
Y si todavía tienes dudas, pues aquí estamos
Responder Con Cita
  #4  
Antiguo 22-10-2012
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 835
Poder: 24
gatosoft Va camino a la fama
Amigo ASAPLTDA,

Espero que la solución dada por casimiro te sirva. Por mi parte voy a contarte una experiencia personal sobre el tema...

Una vez tuve que lidiar con un sistema cuya concurrencia sobre un registro era alta... y tuvimos que implementar unos controles adicionales... el que mas nos ayudó fue la "confirmación con retardo",

La situación era mas o menos la siguiente:

Cuando un usuario seleccionaba un registro libre, éste se marcaba con el código del usuario para bloquearlo (los demás lo veian no disponible)... pero las transacciones eran tan rápidas (en SQL server) que uno o mas usuarios podían marcar un registro en el mismo instante y el sistema les confirmaba transacción exitosa aunque al final la tabla mostraba solo a uno (El último que procesó la BD)

Código:
La transacción era algo asi como:

¿El registro esta libre? ==>
   Seleccinarlo
   ¿El registro quedó marcado con el usuario? ==>
   Mensaje al usuario: "OK. Ud. seleccionó el registro"

Como te decia, a varios usuarios les aparecía el OK al tiempo.... entonces implementamos la "Confirmación con retardo",la cual consistia en dejar pasar un segundo para hacer la pregunta ¿El registro quedó marcado con el usuario?, asi:
Código:
¿El registro esta libre? ==>
   Seleccinarlo
   Sleep(1 segundo) 
   ¿El registro quedó marcado con el usuario? ==>
   Mensaje al usuario: "OK. Ud. seleccionó el registro"
De esta manera la confirmación llegaba solo a un usuario... El segundo de retrado es irrelavante al lado de los problemas que te ahorras...

Espero que esta experiencia te sirva

un saludo,
Responder Con Cita
  #5  
Antiguo 22-10-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Hombre, algo raro/especial/extraño tenía el software, eso que explicas no puede ser, salvo que sea un fallo de MS sql server, que aunque ese sistema no sea de mi agrado, estoy casi convencido de que no puede fallar en eso.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:45:36.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi