Número de factura

07/03/2005 - 17:12 por valentín | Informe spam
Hola, os comento un tema que me trae de cabeza a ver si a
alguien se le ocurre algo.

Tengo un sistema de facturación con varios puestos en red
contra una base de datos de MySql.

El problema es cuando quiero obtener un nuevo número de
factura, que ha de ser único e irrepetible. En VB6 yo
bloqueaba para uso exclusivo una tabla que solo contenia
un contador, incrementaba el nº, guardaba el nuevo valor y
el resto de los usuarios no podian obtener números de
factura hasta que este proceso terminase.

El problema es que con ADO.NET no encuentro la forma de
blloquear la puñetera tabla. He intentando aplicar
técnicas que se describen en MSDN de añadir numeros de
versión a los registros, etc. El caso es que no consigo la
seguridad que lograba antes de que los números de factura
no se repetían jamas.

Agradezco cualquier sugerencia

Un saludo al foro
 

Leer las respuestas

#1 A.Poblacion
07/03/2005 - 17:22 | Informe spam
El truco para bloquear la tabla consiste en usar transacciones. Desde que
haces el "Begin Transaction" se va bloqueando todo lo que uses en la base de
datos, hasta que hagas el "Commit".


"valentín" wrote in message
news:3c5c01c52330$8816b8c0$
Hola, os comento un tema que me trae de cabeza a ver si a
alguien se le ocurre algo.

Tengo un sistema de facturación con varios puestos en red
contra una base de datos de MySql.

El problema es cuando quiero obtener un nuevo número de
factura, que ha de ser único e irrepetible. En VB6 yo
bloqueaba para uso exclusivo una tabla que solo contenia
un contador, incrementaba el nº, guardaba el nuevo valor y
el resto de los usuarios no podian obtener números de
factura hasta que este proceso terminase.

El problema es que con ADO.NET no encuentro la forma de
blloquear la puñetera tabla. He intentando aplicar
técnicas que se describen en MSDN de añadir numeros de
versión a los registros, etc. El caso es que no consigo la
seguridad que lograba antes de que los números de factura
no se repetían jamas.

Agradezco cualquier sugerencia

Un saludo al foro

Preguntas similares