Ver Mensaje Individual
  #18  
Antiguo 14-09-2005
ronalg ronalg is offline
Miembro
 
Registrado: may 2003
Ubicación: Sucre - Bolivia
Posts: 68
Reputación: 24
ronalg Va por buen camino
Y que paso, no volvimos criticones

Hola amigos, ye he trabajado durenta muchos años (ya perdí la cuenta creo que son 10) primero con interbase 4 (creo que ese era el que usaba en mi 486dx4) subiendo hasta el 6 open source desde delphi 3 hasta delphi 2005 y luego con firebird, usando el BDE, IBX, FIB, etc. Jamas en mi vida habia escuchado que se pierden datos y este hilo en mi opinion se salio de curso.
Creo que el fin de un foro es encontrar soluciones y dar opiniones y no atacar a tal o cual componente o tal o cual razón.
Si alguien tiene un problema ayudemos a resolverlo, pero el que pregunta POR MUY desesperado que este debe dar mas detalles del problema, sino solo podermos adivinar.

Concejo:
  1. No uses CommitRetaining cada vez que introduces un registro estas consumiendo tu ancho de banda que da gusto (la cabecera de los paquetes que van por la red se repite y tamaño del paquete es por lo general fijo y por lo tanto si lo mandas medio vacio estas desperdiciando tu ancho de vanda)
  2. Si deseas hacer usar CommitRetaining entonces prueba este codigo en el OnCloseQuery de la ventana principal
    Código Delphi [-]
    
    procedure TW_Principal.FormCloseQuery(Sender: TObject;
      var CanClose: Boolean);
    begin
         desconectar_bd;
    end;
    
    
    procedure TW_Principal.desconectar_bd;
    var i:Integer;
    begin
         for I:=0 TO MD_BD_TRANS.BD.TransactionCount-1 DO
         BEGIN
              if MD_BD_TRANS.BD.Transactions[i].InTransaction then
              begin
                   MD_BD_TRANS.BD.Transactions[i].Commit;
              end;
         END;
         MD_BD_TRANS.BD.Connected:=false;
    end;

Espero te sirva.

Adios
__________________
Saludos desde Sucre - Bolivia
"Si te lo puedes imaginar lo
puedes resolver" Pyriel
Responder Con Cita