Ver Mensaje Individual
  #3  
Antiguo 05-08-2005
Avatar de JuanBCT
JuanBCT JuanBCT is offline
Miembro
 
Registrado: ago 2004
Ubicación: Campana, Argentina
Posts: 57
Reputación: 20
JuanBCT Va por buen camino
Hola Lepe! Gracias por tu respuesta, lo resolví mediante consultas como me sugeriste pero de otra manera:
Código Delphi [-]
       //========================================================================
      // * Hacer exactamente el mismo filtro para c/ tabla y borrar mediante una
      // sentencia SQL * =======================================================
      //========================================================================
         with query15 do
         begin
          close;
          sql.clear;
          sql.add ('SELECT * From Ordenes');
          sql.add ('Where Estado=:W_Estado and');
          sql.add ('f_factura <=:w_hasta');
          sql.add ('Order by F_Factura');
          Params[0].asstring;
          Params[1].asdate;
          Params.ParambyName('w_estado').asstring:='Facturada';
          Params.ParambyName('w_hasta').asdate:=Datetimepicker2.date;
          query15.Active:=true;
          open;
          first;
         end;
      //========================================================================
      // * Bien, acá tengo separado el grupo de ordenes que necesito. Entonces
      //   ahora la voy a recorrer e ir borrando sus "dependientes" * 
      //========================================================================
         while not Query15.EOF do
         begin
         //Borro NITEMREP
           with query3 do
           begin
            close;
            Databasename:='servicio';
            sql.clear;
            sql.add ('DELETE From NItemRep');
            sql.add ('Where Nro_Orden=:W_NumeOr');
            Params[0].asinteger;
            Params.ParambyName('W_NumeOr').asinteger:=query15['Nro_Orden'];
            ExecSql;
           end;
         //Borro NITEMTER
           with query4 do
           begin
            close;
            sql.clear;
            sql.add ('DELETE from NItemTer');
            sql.add ('Where Nro_Orden=:W_NumeOr1');
            Params[0].asinteger;
            Params.ParambyName('W_NumeOr1').asinteger:=query15['Nro_Orden'];
            ExecSql;
           end;
         //Borro NITEMMOB
           with query5 do
           begin
            close;
            sql.clear;
            sql.add ('DELETE From NItemMob');
            sql.add ('Where Nro_Orden=:W_NumeOr2');
            Params[0].asinteger;
            Params.ParambyName('W_NumeOr2').asinteger:=query15['Nro_Orden'];
            ExecSql;
           end;
         //Borro NITEMTEX
           with query6 do
           begin
            close;
            sql.clear;
            sql.add ('DELETE From NItemTex');
            sql.add ('Where Nro_Orden=:W_NumeOr3');
            Params[0].asinteger;
            Params.ParambyName('W_NumeOr3').asinteger:=query15['Nro_Orden'];
            ExecSql;
           end;
         //Borro NDB/NCR
           with query7 do
           begin
            close;
            sql.clear;
            sql.add ('DELETE From NdbNcr');
            sql.add ('Where Orden=:W_NumeOr4');
            Params[0].asinteger;
            Params.ParambyName('W_NumeOr4').asinteger:=query15['Nro_Orden'];
            ExecSql;
           end;
         //Borro vale
           with query8 do
           begin
            close;
            sql.clear;
            sql.add ('DELETE From Vale');
            sql.add ('Where Nro_Orden=:W_NumeOr5');
            Params[0].asinteger;
            Params.ParambyName('W_NumeOr5').asinteger:=query15['Nro_Orden'];
            ExecSql;
           end;
         //Borro ItemComb
           with query9 do
           begin
            close;
            sql.clear;
            sql.add ('DELETE From ItemComb');
            sql.add ('Where NroOrden_Combo=:W_NumeOr6');
            Params[0].asinteger;
            Params.ParambyName('W_NumeOr6').asinteger:=query15['Nro_Orden'];
            ExecSql;
           end;
         //Borro ItemObs
           with query10 do
           begin
            close;
            sql.clear;
            sql.add ('DELETE From ItemObs');
            sql.add ('Where Nro_Orden=:W_NumeOr7');
            Params[0].asinteger;
            Params.ParambyName('W_NumeOr7').asinteger:=query15['Nro_Orden'];
            ExecSql;
           end;
         //Borro ItemTex
           with query11 do
           begin
            close;
            sql.clear;
            sql.add ('DELETE From ItemTex');
            sql.add ('Where Nro_Orden=:W_NumeOr8');
            Params[0].asinteger;
            Params.ParambyName('W_NumeOr8').asinteger:=query15['Nro_Orden'];
            ExecSql;
           end;
         //Borro ItemTer
           with query12 do
           begin
            close;
            sql.clear;
            sql.add ('DELETE From ItemTer');
            sql.add ('Where Nro_Orden=:W_NumeOr9');
            Params[0].asinteger;
            Params.ParambyName('W_NumeOr9').asinteger:=query15['Nro_Orden'];
            ExecSql;
           end;
         //Borro ItemRep
           with query13 do
           begin
            close;
            sql.clear;
            sql.add ('DELETE From ItemRep');
            sql.add ('Where Nro_Orden=:W_NumeOr10');
            Params[0].asinteger;
            Params.ParambyName('W_NumeOr10').asinteger:=query15['Nro_Orden'];
            ExecSql;
           end;
         //Borro ItemMob
           with query14 do
           begin
            close;
            sql.clear;
            sql.add ('DELETE From ItemMob');
            sql.add ('Where Nro_Orden=:W_NumeOr11');
            Params[0].asinteger;
            Params.ParambyName('W_NumeOr11').asinteger:=query15['Nro_Orden'];
            ExecSql;
           end;
         //Borro Ordenes
           with query16 do
           begin
            close;
            sql.clear;
            sql.add ('DELETE From Ordenes');
            sql.add ('Where Nro_Orden=:W_NumeOr12');
            Params[0].asinteger;
            Params.ParambyName('W_NumeOr12').asinteger:=query15['Nro_Orden'];
            ExecSql;
           end;
          //--------------------------------------------------
          query15.next;
          coolgauge4.Progress:=(Query15.RecNo*100) div Query15.RecordCount;
         end;
        //---------------------------------------------------
        query1.Active:=false;
        with query1 do
         begin
          close;
          sql.clear;
          sql.add ('SELECT * From Ordenes');
          sql.add ('Where Estado=:W_Estado and');
          sql.add ('f_factura <=:w_hasta');
          sql.add ('Order by F_Factura');
          Params[0].asstring;
          Params[1].asdate;
          Params.ParambyName('w_estado').asstring:='Facturada';
          Params.ParambyName('w_hasta').asdate:=Datetimepicker2.date;
          query1.Active:=true;
          open;
          first;
         end;

Un poco engorroso... pero funciona! De nuevo, gracias...

Juan
Responder Con Cita