Ver Mensaje Individual
  #1  
Antiguo 12-08-2008
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Reputación: 17
look Va camino a la fama
Manejo de transacciones en SQL server

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
   
  //  proceso en el que preparo los datos antes de ser guardados
    q_cab.SQL.text....
 // ejecucion de Querys

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...
__________________
all your base are belong to us
Responder Con Cita