Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-04-2004
sanxpue sanxpue is offline
Miembro
 
Registrado: jul 2003
Posts: 196
Poder: 24
sanxpue Va por buen camino
Pues no le veo

Pues no le veo problema, puesto que podemos crear su generator para cada usuario diferente, en tiempo de ejecucion y asi como su Stored Procedure, y como dices el problema seria clavemaestro+clavecontador, pero como tu dices tambien se toparia con lo mismo, supongamos que sea un punto de venta y el pastelito x tiene la clave 1 y al mismo tiempo llegan dos clientes en diferentes cajas y los cajeros chechan el pastelito 1 primero ahi tambien se repetiria.. no crees¡¡¡¡, entonces la clave primaria deberia ser clavemaestro+clavecontador+numerodecaja
__________________
saludos desde Puebla Mexico..
[email protected]
"como siempre a sus ordenes y siempre con buena cara"
'lolita me excitas, perversa piel de melocotón'
Responder Con Cita
  #2  
Antiguo 27-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Cool

Cita:
Empezado por sanxpue
Pues no le veo problema, puesto que podemos crear su generator para cada usuario diferente, en tiempo de ejecucion y asi como su Stored Procedure, y como dices el problema seria clavemaestro+clavecontador,
Creo que estas asumiendo muchas cosas sobre una aplicación de la que ambos no tenemos idea. Esto podria funcionar en unos casos y no en otros... asi que, para poder llegar a una conclusión en un tiempo prudencial, que sea útil a quien pregunta y al resto de la comunidad, propongo que nos basemos en el caso mas general posible.

Cita:
Empezado por sanxpue
pero como tu dices tambien se toparia con lo mismo, supongamos que sea un punto de venta y el pastelito x tiene la clave 1 y al mismo tiempo llegan dos clientes en diferentes cajas y los cajeros chechan el pastelito 1 primero ahi tambien se repetiria.. no crees¡¡¡¡
Es que en este caso, el registro maestro no seria el producto, sino el encabezado de envío, factura (o cualquier otra figura equivalente) que se está generando.

Yo no me refiero a que se duplique el número del contador, que eso es precisamente lo que se busca.

Pero te voy a poner un ejemplo... suponiendo el caso ya expuesto del punto de venta.

Estado Actual:

Caja1: Esperando cliente
Caja2: Esperando cliente
Caja3: Cajero en tiempo de comida

Secuencia de sucesos:

  • caja1Inicio de transaccion (factura 10) Supongo que en este momento se reiniciaria el generador, ingresa 3 lineas (10,1), (10,2), y (10,3)
  • caja2Inicio de transaccion (factura 11) Se reinicia el generador, ingresa 1 linea (11,1)
  • caja1ingresa otra línea: error: clave duplicada! (10,2)
  • caja2Ingresa otra línea (11,3) warning: queda un agujero en el contador Esto dependiendo del tipo de aplicación real, puede o no tener importancia.
  • Caja 3Regresa de comer, y le piden que agregue un item a la factura 3, que ya tenia grabados 75 items... error: seguramente habrá clave duplicada (3, 4) (o a estas alturas ya es una loteria)

Esto es para un caso sencillo con solo 3 usuarios concurrentes... pero en la práctica puede llegar a ser mucho mas complejo.

Si puede crearse un generador por usuario, dependerá que un usuario quiera usar solamente una instancia de la aplicación. El crear uno por terminal... limitará a una instancia por terminal...

En fin, es mi apreciación personal, que en este caso, es mejor establecer otro método para generar este tipo de secuencias... o bien cambiar un poco la forma de pensar, y tener un único generador para todos los detalles.

La mejor forma de hacerlo, será diferente de acuerdo a las especificaciones de cada aplicación, y corresponderá a su analista definir un criterio.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 27-04-2004
sanxpue sanxpue is offline
Miembro
 
Registrado: jul 2003
Posts: 196
Poder: 24
sanxpue Va por buen camino
Asi es como dices

Asi es como dices estamos asumiendo que estamos haciendo el programa nosotros, jejeje y no deberiamos.. pero nada mas te explico mi idea va

Antes de tu estado actual falta el prender las cajas
  • Prendes Caja1 crea generador GCaja1
  • Prendes Caja2 crea generador GCaja2
  • Prendes Caja3 crea generador GCaja3

Estado Actual:
  • Caja1: Esperando cliente
  • Caja2: Esperando cliente
  • Caja3: Cajero en tiempo de comida

Secuencia de sucesos:
  • caja1 Inicio de transaccion (factura 10) Supongo que en este momento se reiniciaria el generador, ingresa 3 lineas (10,1), (10,2), y (10,3) (tomando los numeros del Generador GCaja1)
  • caja2 Inicio de transaccion (factura 11) (Se reinicia el generador, aqui no se reinicia el generado) ingresa 1 linea (11,1) (Tomando los numeros del Generador GCaja2)
  • caja1 ingresa otra línea (: error: clave duplicada! (10,2) aqui no hay error ya que meteria) (10,4) (del generador GCaja1)
  • caja2 Ingresa otra línea (11,2) (warning: queda un agujero en el contador tampoco ¡¡¡hay warning¡¡)

Esto dependiendo del tipo de aplicación real, puede o no tener importancia.

Ahora lo que pones a continuacion, asi como tu dices y como yo digo lo que debemos hacer es saber cual es el ultimo numero de item que metio.


Caja 3 Regresa de comer, y le piden que agregue un item a la factura 3, que ya tenia grabados 75 items...
Entonces ahi seguimos usando la potencia de los procedimientos almacenados, (de todos modos hay que consultar cuantos tiene) consultando cuantos items tiene y vamos aumentando el GCaja3 hasta 75 (en este caso)
entonces entraria el 76
(error: seguramente habrá clave duplicada (3, 4) (o a estas alturas ya es una loteria))


weno ya vez alguna vez nos han de servir estas ideas no crees, y como tu dices todo empezo por el uso de nuestro lenguaje

saludos
__________________
saludos desde Puebla Mexico..
[email protected]
"como siempre a sus ordenes y siempre con buena cara"
'lolita me excitas, perversa piel de melocotón'
Responder Con Cita
  #4  
Antiguo 27-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
ahora dejemos la aplicación de caja... y vamos a una aplicación donde, por cualquier motivo, un usuario entra dos veces al sistema... cómo resolverias esto???
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 27-04-2004
sanxpue sanxpue is offline
Miembro
 
Registrado: jul 2003
Posts: 196
Poder: 24
sanxpue Va por buen camino
compañero...

si te das cuenta estoy creando generadores por maquina no por usuario, osease el usuario puede tener 3 maquinas al mismo tiempo..

resuelto..
__________________
saludos desde Puebla Mexico..
[email protected]
"como siempre a sus ordenes y siempre con buena cara"
'lolita me excitas, perversa piel de melocotón'
Responder Con Cita
  #6  
Antiguo 27-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
oh.. entonces supongamos que un usuario abre dos instancias del programa en la misma máquina...
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #7  
Antiguo 27-04-2004
sanxpue sanxpue is offline
Miembro
 
Registrado: jul 2003
Posts: 196
Poder: 24
sanxpue Va por buen camino
Pues ...

Pues que programador mas chafa si deja abrir otra instancia, por que eso se ve a leguas que puede pasar¡¡¡

ahora preguntame

y si llega el raton miguelito y se mete al servidor y no deja avanzar o pone en cero el generator


¿¿pero haber que pasaria si le da post y le falta un dato que no debe de ser nulo, el generador avanza, como resolverias esto??
para que vuelva a regresar al que se quedo
__________________
saludos desde Puebla Mexico..
[email protected]
"como siempre a sus ordenes y siempre con buena cara"
'lolita me excitas, perversa piel de melocotón'
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


La franja horaria es GMT +2. Ahora son las 17:50: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