![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() Un saludo a todos los foristas.
Saben tengo una duda sobre las el proceso de transacciones que llevo a cabo en un sistema de punto de venta. Bueno va mas o menos asi: para vender un articulo, primeramente checo la existencia, ya que un articulo esta constituido de varios sub-articulos que tienen una existencia en un stock. Como decia checo esta existencia y la descuento en la cantidad que quiero vender. Y pongo la informacion de la venta en un Listview, este proceso se repite pues para el numero de articulos que se compren. Para llevar a cabo la venta recorro el Listview y voy ejecutando una sentencia de SQL, para cada linea del listview, para llenar una tabla de ventas. Mi pregunta es, que sera mejor en terminos de rendimiento hacerlo como lo hago o trabajar directamente sobre la tabla de ventas, es decir, cada que agregue una linea a la lista que se agregue automaticamente a la tabla de ventas. Trabajo en Delphi 6 y MS Access xp
__________________
No siempre el mas veloz es el que gana la carrera |
#2
|
||||
|
||||
Ambos métodos tienen sus ventajas e inconvenientes. De la forma en que lo estás haciendo tiene la ventaja de que como está todo en memoria, puedes cancelar el proceso tranquilamente sin tener que deshacer nada. Aunque yo usaría una tabla en memoria.
También tienes la desventaja de que si vendes 5 unidades del artículo A1 y quedan en stock 10 unidades, si luego vas a vender 8 unidades más del artículo A1 te seguirá quedando 10 unidades, porque no has actualizado datos de las tablas. Todo depende de las necesidades de cada uno, si en tu caso no se repiten los artículos en la misma venta no tendrías este inconveniente.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
||||
|
||||
El TClientDataset, está pensado para hacer ese tipo de cosas. Puedes realizar todas las operaciones (como si accedieras a las tablas), pero en realidad, los cambios se hacen en cache, y solo actualiza las tablas cuando ejecutas el método ApplyUpdates. De esta forma evitas el fallo de stocks comentado por Casimiro.
Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
![]() |
|
|
![]() |
|