public String eliminarImagenes(
      Connection conn,
      String pagina,
      String sucID,
      String vigID,
      String padreID,
      String secundarioID,
      String referenciaID,
      String documentoID,
      String consecutivoID) {
    String sql = "";
    Statement stmt = null;
    UtilidadesDatos ud = new UtilidadesDatos();
    try {
      if (consecutivoID.length() <= 0) consecutivoID = "1";

      if (pagina.equalsIgnoreCase("prerequisitodet")) {
        sql =
            "delete from COT_PREREQUISITODETIMG "
                + "where SUC_ID = '"
                + sucID
                + "'"
                + " and  VIG_ID = '"
                + vigID
                + "'"
                + " and  PREC_ID = '"
                + padreID
                + "'"
                + " and  TPR_ID = '"
                + secundarioID
                + "'"
                + " and  TDO_REFERENCIA = '"
                + referenciaID
                + "'"
                + " and TDO_ID = '"
                + documentoID
                + "'"
                + " and PREDI_CONSECUTIVO = '"
                + consecutivoID
                + "'";
      }
      if (pagina.equalsIgnoreCase("requisitosdis")) {
        sql =
            "delete from COT_REQHABILITANTEDISIMG "
                + "where SUC_ID = '"
                + sucID
                + "'"
                + " and  VIG_ID = '"
                + vigID
                + "'"
                + " and  DISC_ID = '"
                + padreID
                + "'"
                + " and  TDO_REFERENCIA = '"
                + referenciaID
                + "'"
                + " and TDO_ID = '"
                + documentoID
                + "'"
                + " and REDII_CONSECUTIVO = '"
                + consecutivoID
                + "'";
      }
      if (pagina.equalsIgnoreCase("proceso")) {
        sql =
            "delete from COT_PROCESOESTIMG "
                + "where SUC_ID = '"
                + sucID
                + "'"
                + " and  VIG_ID = '"
                + vigID
                + "'"
                + " and  PROC_ID = '"
                + padreID
                + "'"
                + " and  EPO_ID like '"
                + secundarioID
                + "'"
                + " and  TDO_REFERENCIA like '"
                + referenciaID
                + "'"
                + " and TDO_ID like '"
                + documentoID
                + "'"
                + " and PROEI_CONSECUTIVO like '"
                + consecutivoID
                + "'";
      }
      stmt = conn.createStatement();
      stmt.executeUpdate(sql);
      stmt.close();
      return "Ok";
    } catch (Exception e) {
      System.out.println("" + e.toString());
      return e.toString();
    } finally {
      try {
        stmt.close();
        stmt = null;
      } catch (Exception err) {;
      }
    }
  }
  public String insertarImagenes(
      Connection conn,
      String path,
      String nombrePropuesto,
      String pagina,
      String sucID,
      String vigID,
      String padreID,
      String secundarioID,
      String referenciaID,
      String documentoID,
      String usuID,
      String fecha,
      String consecutivoID) {
    String sql = "";
    String consecutivoSQL = "";
    PreparedStatement stmt = null;
    ResultSet rs = null;
    File objFile = null;
    FileInputStream objInput = null;
    UtilidadesDatos ud = new UtilidadesDatos();
    String consecutivo = "1";
    try {
      if (pagina.equalsIgnoreCase("prerequisitodet")) {
        this.eliminarImagenes(
            conn,
            pagina,
            sucID,
            vigID,
            padreID,
            secundarioID,
            referenciaID,
            documentoID,
            consecutivoID);
        sql =
            "Insert into COT_PREREQUISITODETIMG (SUC_ID, VIG_ID, PREC_ID, TPR_ID, TDO_REFERENCIA, TDO_ID, PREDI_CONSECUTIVO, PREDI_IMAGEN, PREDI_NOMBREIMAGEN, USU_ID, PREDI_FECHA) values (?,?,?,?,?,?,?,?,?,?,?) ";
        consecutivoSQL =
            " SELECT NVL(MAX(PREDI_CONSECUTIVO),0) "
                + " FROM COT_PREREQUISITODETIMG "
                + " WHERE SUC_ID = '"
                + sucID
                + "' "
                + "   AND VIG_ID = '"
                + vigID
                + "' "
                + "   AND PREC_ID = '"
                + padreID
                + "' "
                + "   AND TPR_ID = '"
                + secundarioID
                + "' "
                + "   AND TDO_REFERENCIA = '"
                + referenciaID
                + "' "
                + "   AND TDO_ID = '"
                + documentoID
                + "' ";
      }
      if (pagina.equalsIgnoreCase("requisitosdis")) {
        this.eliminarImagenes(
            conn,
            pagina,
            sucID,
            vigID,
            padreID,
            secundarioID,
            referenciaID,
            documentoID,
            consecutivoID);
        sql =
            "Insert into COT_REQHABILITANTEDISIMG (SUC_ID, VIG_ID, DISC_ID, TDO_REFERENCIA, TDO_ID, REDII_CONSECUTIVO, REDII_IMAGEN, REDII_NOMBREIMAGEN, USU_ID, REDII_FECHA) values (?,?,?,?,?,?,?,?,?,?) ";
        consecutivoSQL =
            " SELECT NVL(MAX(REDII_CONSECUTIVO),0) "
                + " FROM COT_REQHABILITANTEDISIMG "
                + " WHERE SUC_ID = '"
                + sucID
                + "' "
                + "   AND VIG_ID = '"
                + vigID
                + "' "
                + "   AND DISC_ID = '"
                + padreID
                + "' "
                + "   AND TDO_REFERENCIA = '"
                + referenciaID
                + "' "
                + "   AND TDO_ID = '"
                + documentoID
                + "' ";
      }
      if (pagina.equalsIgnoreCase("proceso")) {
        this.eliminarImagenes(
            conn,
            pagina,
            sucID,
            vigID,
            padreID,
            secundarioID,
            referenciaID,
            documentoID,
            consecutivoID);
        sql =
            "Insert into COT_PROCESOESTIMG (SUC_ID, VIG_ID, PROC_ID, EPO_ID, TDO_REFERENCIA, TDO_ID, PROEI_CONSECUTIVO, PROEI_IMAGEN, PROEI_NOMBREIMAGEN, USU_ID, PROEI_FECHA) values (?,?,?,?,?,?,?,?,?,?,?) ";
        consecutivoSQL =
            " SELECT NVL(MAX(PROEI_CONSECUTIVO),0) "
                + " FROM COT_PROCESOESTIMG "
                + " WHERE SUC_ID = '"
                + sucID
                + "' "
                + "   AND VIG_ID = '"
                + vigID
                + "' "
                + "   AND PROC_ID = '"
                + padreID
                + "' "
                + "   AND EPO_ID = '"
                + secundarioID
                + "' "
                + "   AND TDO_REFERENCIA = '"
                + referenciaID
                + "' "
                + "   AND TDO_ID = '"
                + documentoID
                + "' ";
      }
      if (consecutivoID.length() <= 0 || consecutivoID.equalsIgnoreCase("999999")) {
        rs =
            conn.createStatement()
                .executeQuery(
                    consecutivoSQL); // Prepara la Sentencia de Consecutivo para ejecutarse
        if (rs.next()) consecutivo = String.valueOf(rs.getInt(1) + 1);
        try {
          rs.close();
          rs = null;
        } catch (Exception e) {;
        }
      } else {
        consecutivo = consecutivoID;
      }
      stmt = conn.prepareStatement(sql); // Prepara la Sentencia para ejecutarse
      // String extension = "";
      if (nombrePropuesto.length() > 0) {
        objFile = new File(path); // Crea el archivo a cargar
        objInput = new FileInputStream(objFile); // Escribe el archivo en memoria
        // extension =
        // objFile.getName().substring(objFile.getName().lastIndexOf(".")+1,objFile.getName().length()); // Extrae la Extension del Archivo
      }

      // --- Complementa la sentencia SQL del PreparedStatement
      int i = 1;
      setString(stmt, sucID, i++); // SUC_ID
      setString(stmt, vigID, i++); // VIG_ID
      setLong(stmt, (Long) ud.pasarLongFormTO(padreID), i++); // PREC_ID/DISC_ID/PROC_ID
      if (pagina.equalsIgnoreCase("prerequisitodet") || pagina.equalsIgnoreCase("proceso"))
        setString(stmt, secundarioID, i++); // TPR_ID/EPO_ID
      setString(stmt, referenciaID, i++); // TDO_REFERENCIA
      setString(stmt, documentoID, i++); // TDO_ID
      setLong(
          stmt,
          (Long) ud.pasarLongFormTO(consecutivo),
          i++); // PREDI_CONSECUTIVO/REDII_CONSECUTIVO/PROEI_CONSECUTIVO
      if (nombrePropuesto.length() > 0)
        setBinaryStream(
            stmt, objInput, (int) objFile.length(), i++); // PREDI_IMAGEN/REDII_IMAGEN/PROEI_IMAGEN
      else {
        try {
          stmt.setNull(i++, java.sql.Types.BLOB);
        } catch (Exception errc) {;
        }
      }
      setString(
          stmt, nombrePropuesto, i++); // PREDI_NOMBREIMAGEN/REDII_NOMBREIMAGEN/PROEI_NOMBREIMAGEN
      setString(stmt, usuID, i++); // USU_ID
      setTimestamp(
          stmt, UtilidadesDatos.dateToDateHora((Date) ud.pasarFechaFormTO(fecha)), i++); // FECHA
      stmt.executeUpdate();
      objInput.close();
      if (objFile.exists()) objFile.delete();
      stmt.close();
      return "Ok";
    } catch (Exception e) {
      System.out.println("" + e.toString());
      return e.toString();
    } finally {
      try {
        objInput = null;
        objFile = null;
      } catch (Exception er) {;
      }
      try {
        stmt.close();
        stmt = null;
      } catch (Exception err) {;
      }
    }
  }
 public String consultarImagen(
     Connection conn,
     String path,
     String pagina,
     String sucID,
     String vigID,
     String padreID,
     String secundarioID,
     String referenciaID,
     String documentoID,
     String consecutivoID) {
   Vector vRetornoImg = new Vector(1);
   Statement st = null;
   ResultSet rs = null;
   String sql = "";
   try {
     if (consecutivoID.length() <= 0) consecutivoID = "%";
     if (pagina.equalsIgnoreCase("prerequisitodet")) {
       sql =
           " select PREDI_IMAGEN img, PREDI_NOMBREIMAGEN nameimg"
               + " from COT_PREREQUISITODETIMG"
               + " where suc_id = '"
               + sucID
               + "' "
               + "   and vig_id = '"
               + vigID
               + "'"
               + "   and prec_id = '"
               + padreID
               + "'"
               + "   and tpr_id = '"
               + secundarioID
               + "'"
               + "   and tdo_referencia = '"
               + referenciaID
               + "'"
               + "   and tdo_id = '"
               + documentoID
               + "'"
               + "   and predi_consecutivo like '"
               + consecutivoID
               + "'";
     }
     if (pagina.equalsIgnoreCase("requisitosdis")) {
       sql =
           " select REDII_IMAGEN img, REDII_NOMBREIMAGEN nameimg"
               + " from COT_REQHABILITANTEDISIMG "
               + " where suc_id = '"
               + sucID
               + "' "
               + "   and vig_id = '"
               + vigID
               + "'"
               + "   and disc_id = '"
               + padreID
               + "'"
               + "   and tdo_referencia = '"
               + referenciaID
               + "'"
               + "   and tdo_id = '"
               + documentoID
               + "'";
     }
     if (pagina.equalsIgnoreCase("proceso")) {
       sql =
           " select PROEI_IMAGEN img, PROEI_NOMBREIMAGEN nameimg"
               + " from COT_PROCESOESTIMG "
               + " where suc_id = '"
               + sucID
               + "' "
               + "   and vig_id = '"
               + vigID
               + "'"
               + "   and proc_id = '"
               + padreID
               + "'"
               + "   and epo_id = '"
               + secundarioID
               + "'"
               + "   and tdo_referencia = '"
               + referenciaID
               + "'"
               + "   and tdo_id = '"
               + documentoID
               + "'"
               + "   and proei_consecutivo like '"
               + consecutivoID
               + "'";
     }
     st = conn.createStatement();
     rs = st.executeQuery(sql);
     if (rs.next()) {
       vRetornoImg.clear();
       vRetornoImg.addElement(rs.getBlob("img"));
       vRetornoImg.addElement(rs.getString("nameimg"));
       return famhn.upload.central.FileUpload.materializarImagen(path + "/", conn, vRetornoImg);
     }
     return "Pendiente";
   } catch (Exception e) {
     System.out.println("" + e.toString());
     return e.toString();
   } finally {
     try {
       rs.close();
       rs = null;
     } catch (Exception er) {;
     }
     try {
       st.close();
       st = null;
     } catch (Exception err) {;
     }
   }
 }