|
Los componentes utilizados son los de Interbase, para las tablas utilizo tibquery.
El error que sale cada tanto es: (estando en red)
lock conflict on no wait transaction
deadlock
update conflicts with concurrent update
concurrent transaction number is 83114.
El código:
tengo las tablas FACVTA (FACTURAS), DETFAC (DETALLES DE PRODUCTOS VENDIDOS, ARTICULOS (PARA ACTUALIZAR LAS CANTIDADES)
---- guardo encabezado
insert into factura_encabezado (...) values ...
execsql;
---- guardo detalles de facturas y actualizo cantidades
Recorro una tabla temporal y voy insertando en los datalles los productos vendidos y actualizando cantidades
first
while ... not eof do
begin
insert into factura_detalles (...) values ....
execsql;
//aca mismo actualizo las cantidad de la tabla articulos
update articulos set cantid = cantid + .... where codart = facturas_detalles.codart
execsql;
next
end //while
tablascommit; (Aqui surge el error cada tanto)
//PROCDIMIENTO TABLASCOMMIT QUE USO
procedure tablascommit;
begin
try
datafb.IBTransaction1.CommitRetaining;
except
datafb.IBTransaction1.RollbackRetaining;
end;
end;
sino se entiende pongo el codigo real, no lo puse por lo extenso, gracias!
|