Ver Mensaje Individual
  #3  
Antiguo 05-10-2010
DamianG DamianG is offline
Miembro
 
Registrado: mar 2008
Posts: 95
Reputación: 19
DamianG Va por buen camino
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!
Responder Con Cita