|
Precisamente, lo que tiene ADOCommand1 se ejecuta en linea pero lo que tiene ADODataSet... queda almacenado en memoria. Estas mezclando dos cosas al tiempo. Lo que deberias hacer (para una operacion en batch) tener la tabla de productos en un dataset tambien en batch y recalcular alli....
SIN EMBARGO eso te causaria problemas de concurrencia (porque los demas usuarios tendrian su propia copia) y me imagino por eso lo haces como esta. Lo que te toca hacer es:
1- Usar un trigger en las tablas que afectan estos datos...
2- Usar un sistema de calculadora en memoria, donde almacenas todos los calculos, osea tener una lista asi:
ListaOperaciones
Codigo Cantidad
1 2
1 -1
3 -1
2 3
y al finalizar el usuario ejecutar TODAS las acciones almacenadas. De hecho, eso es tener un log de transacciones. Asi es como se puede hacer de forma fiable en un ambiente de batch sin perjudicarse por las acciones de los demas usuarios...
|