/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package clases;

import static arql2020.ARQL2020.WHERE;
import static arql2020.ARQL2020.capa_nivel;
import static arql2020.ARQL2020.cuadro;
import static arql2020.ARQL2020.episodio_estruct_planta;
import static arql2020.ARQL2020.estruct_arq;
import static arql2020.ARQL2020.localidad;
import static arql2020.ARQL2020.microsector;
import static arql2020.ARQL2020.nombre_estruct_planta;
import static arql2020.ARQL2020.piso_subcapa;
import static arql2020.ARQL2020.siglasitio;
import static arql2020.ARQL2020.sitio;
import static arql2020.ARQL2020.tipo_estruct_planta;
import static arql2020.ARQL2020.zona_ambiental;
import arql2020.DT_frame;
import static arql2020.DT_frame.selectednodeparaeliminar;
import static arql2020.DT_frame.txt_ndt;
import arql2020.FORMATIZADOS_frame;
//import arql2020.DT_sintalon;
import static arql2020.FORMATIZADOS_frame.model;
import static arql2020.FORMATIZADOS_frame.txt_Npiezas;
import static arql2020.Internal_DT_sintalon.st4_peso;
import arql2020.procedencia;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.MutableTreeNode;

/**
 *
 * @author chuen
 */
public class InteraccionesBD {
    

    public  ArrayList <String> pedidoaBD(String CAMPO, String WHERESQL){
        
        
        ArrayList <String> obj= new ArrayList<>();
        ResultSet rs = null; 
        ResultSet rs2 = null; 
        
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs = c.consulta("SELECT DISTINCT "+CAMPO+" FROM PROCEDENCIA" + WHERESQL);
             
            while(rs.next()){
              obj.add(rs.getString("ZONA_AMBIENTAL"));
             
            }       
        
        c.closeconnection();
        
        
        } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }
         
            
             return obj;
         
    }
    
    public void buscarlocalidad(ArrayList <String> obj, DefaultTreeModel model){
                    
        for (int i = 0; i < obj.size(); i++) {
            System.out.println("obj i-------->"+obj.get(i) +" i:" +i);
           
        
        ResultSet rs = null; 
        
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs = c.consulta("SELECT DISTINCT LOCALIDAD FROM PROCEDENCIA WHERE (ZONA_AMBIENTAL='"+obj.get(i)+"')");
             int aux = 0;
            while(rs.next()){
                
                DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot();
                DefaultMutableTreeNode leaf = (DefaultMutableTreeNode) root.getChildAt(i);
                MutableTreeNode hoja = new DefaultMutableTreeNode(rs.getString("LOCALIDAD"));
                leaf.insert(hoja, aux);
                aux= aux+1;
                System.out.println("localidad "+obj.get(i)+" : " + rs.getString("LOCALIDAD"));
            }       
        
        c.closeconnection();
        
        
        } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
}

public void cargartodaslashojas(String procedencia, JTree tree, int child, String tabla, String nombredelid, String rotulo, String prefijo){
        
DefaultTreeModel model = (DefaultTreeModel) tree.getModel();        
DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot();
DefaultMutableTreeNode leaf = (DefaultMutableTreeNode) root.getChildAt(child);
leaf.removeAllChildren();
MutableTreeNode hoja;



ResultSet rs = null; 
        
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs = c.consulta("SELECT f."+nombredelid+", f."+ rotulo+ " FROM " +tabla + " f " + procedencia);

            while(rs.next()){
                
                hoja = new DefaultMutableTreeNode(prefijo+"-"+rs.getInt(nombredelid)+"/"+rs.getString(rotulo));
                leaf.insert(hoja, leaf.getChildCount());

            }       
        
        c.closeconnection();
        
        
        } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }
model.reload();




int j = tree.getRowCount();
       int i = 0;
       while(i < j) {
           tree.expandRow(i);
           i += 1;
           j = tree.getRowCount();
       }
       
 DefaultMutableTreeNode leaf0 = (DefaultMutableTreeNode) root.getChildAt(0);      
 DefaultMutableTreeNode leaf1 = (DefaultMutableTreeNode) root.getChildAt(1);      
       
 int cantdt =  leaf0.getChildCount() + leaf1.getChildCount();
 String n = String.valueOf(cantdt);
 txt_ndt.setText(n);
        
    }
    public void cargartodaslashojasFormatizados(JTree tree, String tabla, String nombredelid, String rotulo, String prefijo){

//////////////////segmental estandar//////////////////////////////////////        
int [][] segmental ;
int longitud=0;
int aux = 0;
ResultSet rs = null; 
        
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs = c.consulta("SELECT COUNT(*) FROM SEGMENTAL_ESTANDAR2");

            if(rs.next()){
               longitud= rs.getInt("1");
           }       
        
        c.closeconnection();
 } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }
segmental = new int[longitud][2];

         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs = c.consulta("SELECT ID_ESTANDAR, ID_FORMATIZADOS FROM SEGMENTAL_ESTANDAR2");

            while(rs.next()){
               segmental[aux][0]= rs.getInt("ID_ESTANDAR");
               segmental[aux][1]= rs.getInt("ID_FORMATIZADOS");
               aux=aux+1;
           }       
        
        c.closeconnection();
 } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }
//////////////////puntas//////////////////////////////////////        
int [][] puntas ;
int longitud2=0;
int aux2 = 0;
ResultSet rs2 = null; 
        
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs2 = c.consulta("SELECT COUNT(*) FROM PUNTAS_DE_PROYECTIL2");

            if(rs2.next()){
               longitud2= rs2.getInt("1");
           }       
        
        c.closeconnection();
 } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }
puntas = new int[longitud2][2];

         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs2 = c.consulta("SELECT ID_PUNTAS, ID_FORMATIZADOS FROM PUNTAS_DE_PROYECTIL2");

            while(rs2.next()){
               puntas[aux2][0]= rs2.getInt("ID_PUNTAS");
               puntas[aux2][1]= rs2.getInt("ID_FORMATIZADOS");
               aux2=aux2+1;
           }       
        
        c.closeconnection();
 } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }

////////////////////////nucleos
Object [][] nucleos ;
int longitud3=0;
int aux3 = 0;
ResultSet rs3 = null; 
        
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs3 = c.consulta("SELECT COUNT(*) FROM NUCLEOS");

            if(rs3.next()){
               longitud3= rs3.getInt("1");
           }       
        
        c.closeconnection();
 } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }
nucleos = new Object[longitud3][3];

         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs3 = c.consulta("SELECT ID_NUCLEOS, ID_FORMATIZADOS, N_PLAT FROM NUCLEOS");

            while(rs3.next()){
               nucleos[aux3][0]= rs3.getInt("ID_NUCLEOS");
               nucleos[aux3][1]= rs3.getInt("ID_FORMATIZADOS");
               nucleos[aux3][2]= rs3.getString("N_PLAT");
               aux3=aux3+1;
           }       
        
        c.closeconnection();
 } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }





//////////////////////////



DefaultTreeModel model = (DefaultTreeModel) tree.getModel();        
FORMATIZADOS_frame.txt_cargar_solo.setText("Todas las piezas");
DefaultMutableTreeNode root = new DefaultMutableTreeNode(FORMATIZADOS_frame.txt_cargar_solo.getText());
model.setRoot(root);
root.removeAllChildren();
MutableTreeNode hoja;




        
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs = c.consulta("SELECT "+nombredelid+","+ rotulo+ " FROM " +tabla +" ORDER BY "+nombredelid+" ASC ");

            while(rs.next()){
                DefaultMutableTreeNode leaf = new DefaultMutableTreeNode(rs.getInt(nombredelid));
                hoja = new DefaultMutableTreeNode(prefijo+"-"+rs.getInt(nombredelid)+"/"+rs.getString(rotulo));
                leaf.add(hoja);
                for (int i = 0; i < segmental.length; i++) {
                    if(rs.getInt(nombredelid)==segmental[i][1]){
                    hoja = new DefaultMutableTreeNode("Seg"+"-"+segmental[i][0]+"/Pieza-"+segmental[i][1]);
                    leaf.add(hoja);
                    }
                      }
                for (int i = 0; i < puntas.length; i++) {
                    if(rs.getInt(nombredelid)==puntas[i][1]){
                    hoja = new DefaultMutableTreeNode("PP"+"-"+puntas[i][0]+"/Pieza-"+puntas[i][1]);
                    leaf.add(hoja);
                    }
                      }
                root.add(leaf);

                   
                for (int i = 0; i < nucleos.length; i++) {
                    if(rs.getInt(nombredelid)==Integer.parseInt(String.valueOf(nucleos[i][1]))){
                    hoja = new DefaultMutableTreeNode("Nu"+"-"+nucleos[i][0]+"/Pieza-"+nucleos[i][1]+"/Plat-"+nucleos[i][2]);
                    leaf.add(hoja);
                    }
                      }
                root.add(leaf);

            }       
        
        c.closeconnection();
        
        
        } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }
model.reload();




//int j = tree.getRowCount();
//       int i = 0;
//       while(i < j) {
//           tree.expandRow(i);
//           i += 1;
//           j = tree.getRowCount();
//       }
String cant = String.valueOf(model.getChildCount(root));
txt_Npiezas.setText(cant);
               

        
    }
   
    public void cargartodaslashojasFormatizadosWHERE(JTree tree, String tabla, String nombredelid, String rotulo, String prefijo){

//////////////////segmental estandar//////////////////////////////////////        
int [][] segmental ;
int longitud=0;
int aux = 0;
ResultSet rs = null; 
        
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs = c.consulta(  "SELECT COUNT(*) FROM SEGMENTAL_ESTANDAR2 s INNER JOIN FORMATIZADOS f "
                   + "ON f.ID_FORMATIZADOS = s.ID_FORMATIZADOS "+WHERE);

            if(rs.next()){
               longitud= rs.getInt("1");
           }       
        
        c.closeconnection();
 } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }
segmental = new int[longitud][2];

         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs = c.consulta("SELECT s.ID_ESTANDAR, f.ID_FORMATIZADOS FROM SEGMENTAL_ESTANDAR2"
                     + " s INNER JOIN FORMATIZADOS f "
                   + "ON f.ID_FORMATIZADOS = s.ID_FORMATIZADOS "+WHERE);

            while(rs.next()){
               segmental[aux][0]= rs.getInt("ID_ESTANDAR");
               segmental[aux][1]= rs.getInt("ID_FORMATIZADOS");
               aux=aux+1;
           }       
        
        c.closeconnection();
 } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }
//////////////////puntas//////////////////////////////////////        
int [][] puntas ;
int longitud2=0;
int aux2 = 0;
ResultSet rs2 = null; 
        
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs2 = c.consulta("SELECT COUNT(*) FROM PUNTAS_DE_PROYECTIL2  s INNER JOIN FORMATIZADOS f "
                   + "ON f.ID_FORMATIZADOS = s.ID_FORMATIZADOS "+WHERE);

            if(rs2.next()){
               longitud2= rs2.getInt("1");
           }       
        
        c.closeconnection();
 } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }
puntas = new int[longitud2][2];

         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs2 = c.consulta("SELECT s.ID_PUNTAS, f.ID_FORMATIZADOS FROM PUNTAS_DE_PROYECTIL2  s INNER JOIN FORMATIZADOS f "
                   + "ON f.ID_FORMATIZADOS = s.ID_FORMATIZADOS "+WHERE);

            while(rs2.next()){
               puntas[aux2][0]= rs2.getInt("ID_PUNTAS");
               puntas[aux2][1]= rs2.getInt("ID_FORMATIZADOS");
               aux2=aux2+1;
           }       
        
        c.closeconnection();
 } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }

////////////////////////nucleos
Object [][] nucleos ;
int longitud3=0;
int aux3 = 0;
ResultSet rs3 = null; 
        
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs3 = c.consulta("SELECT COUNT(*) FROM NUCLEOS  s INNER JOIN FORMATIZADOS f "
                   + "ON f.ID_FORMATIZADOS = s.ID_FORMATIZADOS "+WHERE);

            if(rs3.next()){
               longitud3= rs3.getInt("1");
           }       
        
        c.closeconnection();
 } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }
nucleos = new Object[longitud3][3];

         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs3 = c.consulta("SELECT s.ID_NUCLEOS, f.ID_FORMATIZADOS, s.N_PLAT FROM NUCLEOS  s INNER JOIN FORMATIZADOS f "
                   + "ON f.ID_FORMATIZADOS = s.ID_FORMATIZADOS "+WHERE);

            while(rs3.next()){
               nucleos[aux3][0]= rs3.getInt("ID_NUCLEOS");
               nucleos[aux3][1]= rs3.getInt("ID_FORMATIZADOS");
               nucleos[aux3][2]= rs3.getString("N_PLAT");
               aux3=aux3+1;
           }       
        
        c.closeconnection();
 } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }





//////////////////////////



DefaultTreeModel model = (DefaultTreeModel) tree.getModel();        
//DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot();
DefaultMutableTreeNode root = new DefaultMutableTreeNode(FORMATIZADOS_frame.txt_cargar_solo.getText());
model.setRoot(root);
MutableTreeNode hoja;




        
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs = c.consulta("SELECT f."+nombredelid+", f."+ rotulo+ " FROM " +tabla 
                   +" "+ WHERE +" ORDER BY f."+nombredelid+" ASC ");

            while(rs.next()){
                DefaultMutableTreeNode leaf = new DefaultMutableTreeNode(rs.getInt(nombredelid));
                hoja = new DefaultMutableTreeNode(prefijo+"-"+rs.getInt(nombredelid)+"/"+rs.getString(rotulo));
                leaf.add(hoja);
                for (int i = 0; i < segmental.length; i++) {
                    if(rs.getInt(nombredelid)==segmental[i][1]){
                    hoja = new DefaultMutableTreeNode("Seg"+"-"+segmental[i][0]+"/Pieza-"+segmental[i][1]);
                    leaf.add(hoja);
                    }
                      }
                for (int i = 0; i < puntas.length; i++) {
                    if(rs.getInt(nombredelid)==puntas[i][1]){
                    hoja = new DefaultMutableTreeNode("PP"+"-"+puntas[i][0]+"/Pieza-"+puntas[i][1]);
                    leaf.add(hoja);
                    }
                      }
                root.add(leaf);

                   
                for (int i = 0; i < nucleos.length; i++) {
                    if(rs.getInt(nombredelid)==Integer.parseInt(String.valueOf(nucleos[i][1]))){
                    hoja = new DefaultMutableTreeNode("Nu"+"-"+nucleos[i][0]+"/Pieza-"+nucleos[i][1]+"/Plat-"+nucleos[i][2]);
                    leaf.add(hoja);
                    }
                      }
                root.add(leaf);

            }       
        
        c.closeconnection();
        
        
        } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }
model.reload();




//int j = tree.getRowCount();
//       int i = 0;
//       while(i < j) {
//           tree.expandRow(i);
//           i += 1;
//           j = tree.getRowCount();
//       }
//       
String cant = String.valueOf(model.getChildCount(root));
txt_Npiezas.setText(cant);
        
    }
  
    public int obtenersiguienteID(String tabla, String id){
        
int ultimoid=0;
    String sql = "SELECT MAX("+id+") FROM "+tabla;
        try {
            conexion c = new conexion();
            c.getConexion();

            ResultSet rs = c.consulta(sql);

            if (rs.next()) {
                ultimoid=rs.getInt("1");
                ultimoid=ultimoid+1;
            }

            c.closeconnection();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "No se pudo cargar el id: "+ex);
        }    
    
return ultimoid;
      
      
    }

public String obtener_id_por_rotulo(String tabla, String id_tabla, String rotulo, String colrotulo){
        
String ultimoid="No se ha encontrado el valor solicitado";
String listaids="";
boolean hayresult=false;
    String sql = "SELECT "+id_tabla+", SITIO FROM "+tabla + " WHERE ("+colrotulo+"='"+rotulo+"')";
        try {
            conexion c = new conexion();
            c.getConexion();

            ResultSet rs = c.consulta(sql);

            while (rs.next()) {
                hayresult=true;
                listaids=listaids+ "\n" + rs.getString(id_tabla) + " -- Sitio: "+rs.getString("SITIO");
                }

            c.closeconnection();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "No se pudo buscar el id: "+ex);
        }    
    if(hayresult==true){
        ultimoid=listaids;
    }
return ultimoid;
      
      
    }
    
public void eliminarhojaarbol(JTree arbol, DefaultMutableTreeNode nodoselec ){
    
     DefaultTreeModel model = (DefaultTreeModel) arbol.getModel();  
     model.removeNodeFromParent(nodoselec);
     int j = arbol.getRowCount();
       int i = 0;
       while(i < j) {
           arbol.expandRow(i);
           i += 1;
           j = arbol.getRowCount();
       }
}
public void actualizarhoja(JTree tree, DefaultMutableTreeNode selectednodeactualizar, String prefijo, String id, String codigoinvestigador ){
    DefaultTreeModel model;
    
    model = (DefaultTreeModel) tree.getModel();
     DefaultMutableTreeNode root = (DefaultMutableTreeNode)model.getRoot();
     selectednodeactualizar.setUserObject(prefijo+"-"+id+"/"+codigoinvestigador);
     model.reload();
     
     
     int j = tree.getRowCount();
       int i = 0;
       while(i < j) {
           tree.expandRow(i);
           i += 1;
           j = tree.getRowCount();
       }
       
}

public String[][] solicitarlista_X2(String a, String b, String tabla, String where){
    String [][]pedido;
  int longitud=0;
  
    ResultSet rs = null; 
        
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs = c.consulta("SELECT COUNT(*) FROM "+tabla+ " " + where);

            if(rs.next()){
               longitud= rs.getInt("1");
           }       
        
        c.closeconnection();
 } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }
pedido = new String [longitud][2];
    
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs = c.consulta("SELECT "+a+"," +b+" FROM "+tabla+ " " + where);
             int aux=0;
            while(rs.next()){
               
               pedido[aux][0]= rs.getString(a);
               pedido[aux][1]= rs.getString(b);
              
                
                aux=aux+1;
           }       
        
        c.closeconnection();
 } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }


    
    return pedido;
}
public String[][] solicitarlista_X2f(String af, String a, String bf, String b, String tabla, String where){
    String [][]pedido;
  int longitud=0;
  
    ResultSet rs = null; 
        
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs = c.consulta("SELECT COUNT(*) FROM "+tabla+ " " + where);

            if(rs.next()){
               longitud= rs.getInt("1");
           }       
        
        c.closeconnection();
 } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }
pedido = new String [longitud][2];
    
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs = c.consulta("SELECT "+af+"," +bf+" FROM "+tabla+ " " + where);
             int aux=0;
            while(rs.next()){
               
               pedido[aux][0]= rs.getString(a);
               pedido[aux][1]= rs.getString(b);
              
                
                aux=aux+1;
           }       
        
        c.closeconnection();
 } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }


    
    return pedido;
}
public String[] selectDisctint(String a, String tabla, String where){
    String []pedido;
  int longitud=0;
  
    ResultSet rs = null; 
        
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs = c.consulta("SELECT DISTINCT ("+a+") FROM "+tabla + " " + where);

            while(rs.next()){
               longitud= longitud+1;
           }       
        
        c.closeconnection();
 } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }
pedido = new String [longitud];
    
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs = c.consulta("SELECT DISTINCT("+a+") FROM "+tabla + " " + where);
             int aux=0;
            while(rs.next()){
               
               pedido[aux]= rs.getString(a);
             
               aux=aux+1;
               
           }       
        
        c.closeconnection();
 } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }


    
    return pedido;
}
public String[] selectDisctintf(String af, String a, String tabla, String where){
    String []pedido;
  int longitud=0;
  
    ResultSet rs = null; 
        
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs = c.consulta("SELECT DISTINCT ("+af+") FROM "+tabla + " " + where);

            while(rs.next()){
               longitud= longitud+1;
           }       
        
        c.closeconnection();
 } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }
pedido = new String [longitud];
    
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs = c.consulta("SELECT DISTINCT("+af+") FROM "+tabla + " " + where);
             int aux=0;
            while(rs.next()){
               
               pedido[aux]= rs.getString(a);
             
               aux=aux+1;
               
           }       
        
        c.closeconnection();
 } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }


    
    return pedido;
}
 public ArrayList<String> solicitarlistaX1(String col, String Tabla, String where){

     int aux =0;
     ResultSet rs = null; 
     ArrayList<String>lista = new ArrayList<>();
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs = c.consulta("SELECT "+col+" FROM " +Tabla + " " +where);

            while(rs.next()){
                lista.add(rs.getString(col));
            }       
        
        c.closeconnection();
        
        
        } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }
     
     
     
     return lista;
 }
 public ArrayList<String> solicitarlistaX1f(String colf, String col, String Tabla, String where){

     int aux =0;
     ResultSet rs = null; 
     ArrayList<String>lista = new ArrayList<>();
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs = c.consulta("SELECT "+colf+" FROM " +Tabla + " " +where);

            while(rs.next()){
                lista.add(rs.getString(col));
            }       
        
        c.closeconnection();
        
        
        } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }
     
     
     
     return lista;
 }
 public int getcountf(String Tabla, String where){

     int aux =0;
     ResultSet rs = null; 
     ArrayList<String>lista = new ArrayList<>();
         try {
            conexion c = new conexion();
            c.getConexion();
            
             rs = c.consulta("SELECT COUNT(*) FROM " +Tabla + " " +where);

            if(rs.next()){
                aux = rs.getInt("1");
            }       
        
        c.closeconnection();
        
        
        } catch (SQLException ex) {
            Logger.getLogger(InteraccionesBD.class.getName()).log(Level.SEVERE, null, ex);
        }
     
     
     
     return aux;
 }
 
 
 
}
