Ver Mensaje Individual
  #8  
Antiguo 06-09-2007
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Ten en cuenta el tema de transacciones

Código:
Query.Close;
Query.SQL.Clear;
Query.SQL.Add('insert into DETALLE_FACTURA (');
Query.SQL.Add('COD_ARTICULO, CANTIDAD, CAMPO_X...)');
Query.SQL.Add('values (:vCOD_ARTICULO, :vCANTIDAD, :vCAMPO_X...)');
while not DetalleTemporal.Eof() do begin
   if not Query.Transaction.InTransaction then Query.Transaction.StartTransaction; //agregado
   Query.ParamByName('vCOD_ARTICULO').AsString := DetalleTemporalCOD_ARTICULO.AsString;
   Query.ParamByName('vCANTIDAD').AsCurrency   := DetalleTemporalCANTIDAD.AsCurrency;
   ...otros campos..
   Query.Transaction.Commit; // agregado
   DetalleTemporal.Next;
end;
Si hay más de un usuario cargando datos, el hecho de que inserten al mismo tiempo y no cierren transacciones puede hacer más cada vez más lento la inserción de registros.

Última edición por duilioisola fecha: 06-09-2007 a las 13:50:50.
Responder Con Cita