Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 25-04-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues yo creo que depende de muchas cosas. Es posible que por la naturaleza del sistema, los usuarios no se "estorben" unos a otros de manera que casi se pueda considerar una aplicación monousuario.

Te voy a dar un ejemplo concreto, en el que no puedo vivir sin transacciones.

Yo manejo inscripciones a cursos escolares y en época de inscripciones la demanda es muy fuerte. Un alumno ingresa al sistema y se le presenta una lista de los grupos disponibles, esto es, de los que aún tienen lugares. El alumno escoge uno y se procede a la inscripción, que consta, básicamente de dos operaciones:

1. Se inserta un registro en una tabla de inscripciones
2. Se disminuye un lugar en el grupo donde se inscribió.

Todo muy sencillo. Pero toma en cuenta que entre el momento en que el alumno ve la lista de grupos y el momento en que da click en el grupo deseado, otros alumnos pudieron haber seleccionado el mismo grupo y agotado los lugares. Eso es bastante probable, al menos en mi caso, porque estamos hablando de cientos de accesos simultáneos al sistema.

Si lo dejo pasar tal cual, estaría sobrellenando el grupo. Entonces lo que hago es meter esas dos operaciones en una transacción. Una vez que decremento el número de lugares, vuelvo a ver el cupo, si éste es negativo, es porque ya se habían agotado los lugares. Entonces hago un rollback y le mando un mensaje al alumno.

Yo realmente no manejo mucho el tema, pero creo que se puede resumir así: en una transacción debes poner aquellas operaciones en donde no puede fallar ninguna, o todas son exitosas o todas fallan. Si tienes una situación así, entonces debes usar transacciones.

// Saludos
Responder Con Cita
 



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Diferencias entre Firebird e Interbase David Firebird e Interbase 6 28-04-2007 16:14:47
Diferencias entre Delphi Rabata Varios 4 27-10-2005 17:02:05
Diferencias entre OnActivate y OnPaint FunBit OOP 4 02-09-2005 16:40:22
Diferencias Entre Componentes Ado Y Dbexpress mendozasoftware Firebird e Interbase 6 06-05-2005 02:43:14
Diferencias entre FREE y DESTROY bustio OOP 1 23-06-2004 05:48:35


La franja horaria es GMT +2. Ahora son las 05:48:02.


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