Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-09-2010
Yoana Yoana is offline
Miembro
 
Registrado: feb 2010
Posts: 22
Poder: 0
Yoana Va por buen camino
Problemas con Consecutivos

Hola,
Estoy utilizando Delphi 6 con Oracle .
Tengo el siguiente problema tengo una aplicación que me genera numero de consecutivos para unos pedidos y esto lo usan varios usuarios a la vez. Se me esta presentando el error de que si varios usuario están trabajando al mismo tiempo les esta mostrando el mismo numero de consecutivo.

Así es como obtengo y actualizo el consecutivo.
UPDATE tabla
SET consecutivo = select consecutivo +1
from tabla
where ..

Podrían de favor darme una idea como solucionar esto.
Gracias.
Responder Con Cita
  #2  
Antiguo 09-09-2010
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.234
Poder: 20
ElKurgan Va camino a la fama
¿Haces commit al finalizar la actualización del campo?

Un saludo
Responder Con Cita
  #3  
Antiguo 09-09-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
El problema es que si varios usuarios leen al mismo tiempo de forma concurrente, puede ser que obtengan el mismo valor. Para evitarlo puedes utilizar transacciones, de forma que el usuario que está accediendo bloquee momentáneamente el acceso al resto.
Revisa los diferentes "Isolation Levels" disponibles en Oracle, para decidir cual utilizar, de forma que se bloqueen las lecturas.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 09-09-2010
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 16
microbiano Va por buen camino
umm por que no pones el campo como llave y que no permita duplicados, entonces cuando el usuario quiera insertar ese registro generaria una excepcion, la capturas y le pides al usuario recalcular el numero, solucion rapida o al menos creo que te sacaria del apuro
Responder Con Cita
  #5  
Antiguo 09-09-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por microbiano Ver Mensaje
umm por que no pones el campo como llave y que no permita duplicados,
El problema es cuando lees el valor; Si dos programas se cuelan a leer al mismo tiempo (antes o después de actualizar), leerán el mismo número y tendrás problemas.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 10-09-2010
Avatar de Cañones
Cañones Cañones is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Paz Entre Ríos
Posts: 354
Poder: 18
Cañones Va por buen camino
Hola, este tema se trato acá http://www.clubdelphi.com/foros/showthread.php?t=65817
Espero te sirva.
Saludos.
Responder Con Cita
  #7  
Antiguo 13-09-2010
Yoana Yoana is offline
Miembro
 
Registrado: feb 2010
Posts: 22
Poder: 0
Yoana Va por buen camino
primero que nada gracias a todos por responder.
pero aun sigo con el problema, se me sigue mostrando el mismo numero de consecutivos a mas de un usuario. cuando se trabaja al mismo tiempo.
al proceso del obtener consecutivo ya le indice la transacción utilice ISOLATION LEVEL, pero no lo e podido solucionar.
Responder Con Cita
  #8  
Antiguo 14-09-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Debes crear una transacción que uincluya la consulta y la actualización del valor y asegurarte (vía ISOLATION LEVEL) de que nadie lee valores mientras otro proceso está en la transacción.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #9  
Antiguo 17-09-2010
Yoana Yoana is offline
Miembro
 
Registrado: feb 2010
Posts: 22
Poder: 0
Yoana Va por buen camino
Muchas gracias, problema solucionado.
revise la transacción y colocación de ISOLATION LEVEL y con eso lo solucione.


Gracias por el apoyo.
Responder Con Cita
  #10  
Antiguo 18-09-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
de todos modos el esquema que ocupas (consecutivo + 1) es bastante arcaico, la mayor parte de los motores incluyen campos autoincrementados que evitan tener que hacer trabajo adicional para este tipo de casos ya que generan un número único inclusive por cada conexión.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
Respuesta



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
Trigger varios consecutivos seara2005 Firebird e Interbase 4 18-11-2009 15:46:19
crear txt consecutivos en builder BC++ C++ Builder 2 13-11-2009 01:03:35
Numeros de Recibo Consecutivos Camilo Conexión con bases de datos 6 03-08-2007 09:46:01
Bloques De Numeros Consecutivos dany2006 C++ Builder 5 15-11-2006 21:06:16
Inserción de datos consecutivos pallyJD Tablas planas 1 27-10-2006 18:22:34


La franja horaria es GMT +2. Ahora son las 11:48:44.


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