Delphi - contador de factura en cliente/servidor

 
Vista:

contador de factura en cliente/servidor

Publicado por Adel (1 intervención) el 04/04/2012 19:11:08
COMO HACER EL PROGRAMA PARA QUE INCREMENTE EL NUMERO DE FACTURA TRABAJANDO CON VARIOS PC.?

LO QUE QUIERO REALMENTE ES SABER SI ES CON TRANSACIONES NECESITO UN EJEMPLO.
GRACIAS DE ANTE MANO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

contador de factura en cliente/servidor

Publicado por E.T. (1244 intervenciones) el 05/04/2012 01:43:06
En realidad eso lo haria el manejador de base de datos, te explico
Suponiendo que son facturas de papel, y se van a imprimir desde una sola máquina (ojo, digo imprimir, no crear).
Tu campo numero lo haces autoincremental, luego desde las pc, creas un encabezado de factura, el servidor va a recibir todas las peticiones de crear un encabezado de facura y aunque paresca que se hacen al mismo tiempo, en realidad hay una cola de transacciones, luego para recuperar el número correcto para cada computadora, haces una consulta con datos que acabas de insertar, por ejemplo
seleccionar la clave de facturas donde hora, fecha, caja, cliente... (entre otros datos dependiendo de que información se pueda repetir por transaccion), con esto obtienes el numero generado por una computadora en especifico, ya que tienes el numero haces la insercion del detalle de la factura con el numero correspondiente, y ya un servicio de impresion se encarga de imprimir en el orden correcto para evitar que se corra el numero del papel con el del sistema.

Otra opcion es, en este caso para MySql, del cual se que funciona, no se para otros manejadores de base de datos, es lo siguiente, hay una funcion (no la recuerdo ahorita) que te regresa el último numero autoincremental generado por una sesión, asi, si hay inserciones simultaneas evitas que un numero se vaya al pc equivocado, pues obtienes el mayor que generó la pc, no el mayor que hay en la tabla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar