Hola Amigos y compañeros del foro tengo el siguiente problema y me aboco a ustedes para ver si es posible resolverlo:
-Tengo un sistema de facturación hecho en delphi 7 con una base de datos en SQL Server, instale mi sistema en aproximadamente 13 PCs, de las cuales solo 5 son de los facturadores ,el problema que tengo es que el sistema se me cuelga al momento de grabar una factura ,lo que es extraño porq cuando empezaron a usar el sistema , este no se colgaba, creo que el problema viene por el manejo de las transacciones, para el evento de grabar utilizo :
Código Delphi
[-]
if not (form1.Database1.InTransaction) then form1.Database1.StartTransaction;
try
q_cab.SQL.text....
form1.Database1.Commit;
except
on E: Exception do
begin
Application.MessageBox( PChar( E.Message ), 'Ocurrio un Error en el posteo,intente de nuevo',
MB_ICONSTOP );
form1.database1.rollback;
end;
el momento en el que se cuelga es normalmente cuando guardan al mismo tiempo una factura, el if not (form1.Database1.InTransaction) then , probablemente este generando el problema ya que si una maquina esta en proceso de grabado las demás tienen que esperar a que esta termine ,a esto súmenle una maquina no muy rápida que digamos , luego otras transacciones pendientes, por la de los facturadores ,se genera una lentitud extrema , básicamente lo que quiero es que el programa no dependa de que si otra maquina esta es transacción, esta pueda grabar en la base sin ningún problema, ya que si se cuelga en el momento de grabar la factura se empiezan a colgar una a una hasta que la primera que empezó a grabar termine el proceso.
.....
¿Cual sera la mejor forma de guardar la informacion?
espero me ayuden a encontrar una solución...