Package com.GestDB.sql

Source Code of com.GestDB.sql.Exportar

package com.GestDB.sql;

import com.GestDB.general.Trackbug;
import com.utils.*;
import java.awt.*;
import java.sql.*;
import java.util.StringTokenizer;
import java.util.Properties;
import java.util.Enumeration;
import java.util.Vector;
import java.io.File;
import java.io.FileInputStream;

public class Exportar extends javax.swing.JDialog
{
    private String jdbcDriverURL = "";
    private String jdbcDriverClass = "";
    private String user = "";
    private String password = "";
    private Vector vCampos = new Vector(100,100);
    private java.util.Map mTiposSql = java.util.Collections.synchronizedMap(new java.util.TreeMap());
   
    public Exportar(Frame parent)
    {
        super(parent);

        TipoDeGestores.addElement("AdabasD");
        TipoDeGestores.addElement("DB2");
        TipoDeGestores.addElement("ODBC");
        TipoDeGestores.addElement("Oracle");
        TipoDeGestores.addElement("Informix");

        // define los tipos SQL
        mTiposSql.put(Integer.toString(Types.ARRAY),"ARRAY");
        mTiposSql.put(Integer.toString(Types.BIGINT),"BIGINT");
        mTiposSql.put(Integer.toString(Types.BINARY),"BINARY");
        mTiposSql.put(Integer.toString(Types.BIT),"BIT");
        mTiposSql.put(Integer.toString(Types.BLOB),"BLOB");
        mTiposSql.put(Integer.toString(Types.CHAR),"CHAR");
        mTiposSql.put(Integer.toString(Types.CLOB),"CLOB");
        mTiposSql.put(Integer.toString(Types.DATE),"DATE");
        mTiposSql.put(Integer.toString(Types.DECIMAL),"DECIMAL");
        mTiposSql.put(Integer.toString(Types.DISTINCT),"DISTINCT");
        mTiposSql.put(Integer.toString(Types.DOUBLE),"DOUBLE");
        mTiposSql.put(Integer.toString(Types.FLOAT),"FLOAT");
        mTiposSql.put(Integer.toString(Types.INTEGER),"INTEGER");
        mTiposSql.put(Integer.toString(Types.JAVA_OBJECT),"JAVA_OBJECT");
        mTiposSql.put(Integer.toString(Types.LONGVARBINARY),"LONGVARBINARY");
        mTiposSql.put(Integer.toString(Types.LONGVARCHAR),"LONGVARCHAR");
        mTiposSql.put(Integer.toString(Types.NULL),"NULL");
        mTiposSql.put(Integer.toString(Types.NUMERIC),"NUMERIC");
        mTiposSql.put(Integer.toString(Types.OTHER),"OTHER");
        mTiposSql.put(Integer.toString(Types.REAL),"REAL");
        mTiposSql.put(Integer.toString(Types.REF),"REF");
        mTiposSql.put(Integer.toString(Types.SMALLINT),"SMALLINT");
        mTiposSql.put(Integer.toString(Types.STRUCT),"STRUCT");
        mTiposSql.put(Integer.toString(Types.TIME),"TIME");
        mTiposSql.put(Integer.toString(Types.TIMESTAMP),"TIMESTAMP");
        mTiposSql.put(Integer.toString(Types.TINYINT),"TINYINT");
        mTiposSql.put(Integer.toString(Types.VARBINARY),"VARBINARY");
        mTiposSql.put(Integer.toString(Types.VARCHAR),"VARCHAR");

        setModal(true);
        setTitle("Exportaci�n de datos");
        getContentPane().setLayout(null);
        setSize(541,540);
        setVisible(false);
        JPanel1.setBorder(titledBorder1);
        JPanel1.setLayout(null);
        getContentPane().add(JPanel1);
        JPanel1.setBounds(12,0,516,108);
        gExportar.setLayout(new GridLayout(3,0,0,0));
        JPanel1.add(gExportar);
        gExportar.setBounds(15,21,126,75);
        JRadioButton1.setSelected(true);
        JRadioButton1.setToolTipText("Exporta los resultados de la Query lanzada en la pantalla");
        JRadioButton1.setText("Resultados Query");
        JRadioButton1.setActionCommand("Resultados Query");
        JRadioButton1.setMnemonic((int)'R');
        gExportar.add(JRadioButton1);
        JRadioButton1.setBounds(0,0,0,0);
        JRadioButton2.setToolTipText("Exporta todos los datos de la tabla seleccionada");
        JRadioButton2.setText("Tabla");
        JRadioButton2.setActionCommand("Tabla");
        JRadioButton2.setMnemonic((int)'T');
        gExportar.add(JRadioButton2);
        JRadioButton2.setBounds(0,0,0,0);
        JRadioButton3.setToolTipText("Exporta la Base de Datos que estamos utilizando en estos momentos");
        JRadioButton3.setText("Base de datos");
        JRadioButton3.setActionCommand("Base de datos");
        JRadioButton3.setMnemonic((int)'B');
        gExportar.add(JRadioButton3);
        JRadioButton3.setBounds(0,0,0,0);
        jtQuery.setToolTipText("Tabla a crear en el destino. S�lo si se selecciona en tabla destino \"Nueva\"");
        JPanel1.add(jtQuery);
        jtQuery.setBounds(156,24,348,23);
        jcTabla1.setModel(TablasActuales);
        jcTabla1.setToolTipText("Tablas disponibles en la base de datos para exportar");
        jcTabla1.setEnabled(false);
        JPanel1.add(jcTabla1);
        jcTabla1.setBounds(156,48,180,23);
        JLabel10.setText("Filtro de tablas");
        JPanel1.add(JLabel10);
        JLabel10.setBounds(156,72,90,23);
        jtFiltro.setToolTipText("Campo clave que se utiliza en la condici�n");
        jtFiltro.setText("%");
        jtFiltro.setEnabled(false);
        JPanel1.add(jtFiltro);
        jtFiltro.setBounds(252,72,252,23);
        JPanel2.setBorder(titledBorder2);
        JPanel2.setLayout(null);
        getContentPane().add(JPanel2);
        JPanel2.setBounds(12,108,516,216);
        JLabel1.setText("Separador de campos");
        JPanel2.add(JLabel1);
        JLabel1.setBounds(32,40,130,23);
        jtSeparador.setToolTipText("Caracter de texto utilizado para separar los campos. Ej |");
        jtSeparador.setText("|");
        JPanel2.add(jtSeparador);
        jtSeparador.setBounds(170,40,40,23);
        JLabel2.setText("Delimitador de cadenas");
        JPanel2.add(JLabel2);
        JLabel2.setBounds(230,40,135,23);
        jtCadenas.setToolTipText("Car�cter de texto utilizado para delimitar las cadenas de texto. Ej. \"");
        JPanel2.add(jtCadenas);
        jtCadenas.setBounds(375,40,40,23);
        chConNombres.setToolTipText("S�lo valido para destino del tipo Archivo de texto");
        chConNombres.setText("Primera l�nea con nombres de campos");
        chConNombres.setActionCommand("Primera l�nea con nombres de campos");
        chConNombres.setMnemonic((int)'P');
        JPanel2.add(chConNombres);
        chConNombres.setForeground(new java.awt.Color(102,102,153));
        chConNombres.setBounds(32,62,240,23);
        JLabel11.setText("Tabla destino:");
        JPanel2.add(JLabel11);
        JLabel11.setBounds(180,106,80,23);
        jtTablaDestino.setEnabled(false);
        JPanel2.add(jtTablaDestino);
        jtTablaDestino.setBounds(264,106,240,23);
        JLabel3.setText("Origen:  Clave 1");
        JPanel2.add(JLabel3);
        JLabel3.setBounds(36,158,90,23);
        jcClave1.setModel(Campos);
        jcClave1.setToolTipText("Campo clave que se utiliza en la condici�n");
        jcClave1.setEnabled(false);
        JPanel2.add(jcClave1);
        jcClave1.setBounds(132,158,150,23);
        JLabel4.setText("Clave 2");
        JPanel2.add(JLabel4);
        JLabel4.setBounds(305,158,45,23);
        jcClave2.setModel(Campos2);
        jcClave2.setToolTipText("Segundo campo clave que se utiliza en la condici�n");
        jcClave2.setEnabled(false);
        JPanel2.add(jcClave2);
        jcClave2.setBounds(354,158,150,23);
        gTipo.setLayout(null);
        JPanel2.add(gTipo);
        gTipo.setBounds(15,21,153,183);
        JRadioButton4.setSelected(true);
        JRadioButton4.setToolTipText("Texto separado por caracteres de delimitaci�n");
        JRadioButton4.setText("Texto plano delimitado");
        JRadioButton4.setActionCommand("Texto plano delimitado");
        JRadioButton4.setMnemonic((int)'X');
        gTipo.add(JRadioButton4);
        JRadioButton4.setBounds(0,0,153,23);
        JRadioButton5.setToolTipText("Genera tantas sentencias insert como registros tenga que exportar");
        JRadioButton5.setText("Insert");
        JRadioButton5.setActionCommand("Insert");
        JRadioButton5.setMnemonic((int)'I');
        gTipo.add(JRadioButton5);
        JRadioButton5.setBounds(0,65,60,23);
        JRadioButton6.setToolTipText("Genera tantas sentencias como registros tenga que exportar");
        JRadioButton6.setText("Update");
        JRadioButton6.setActionCommand("Update");
        JRadioButton6.setMnemonic((int)'U');
        gTipo.add(JRadioButton6);
        JRadioButton6.setBounds(0,88,60,23);
        JRadioButton7.setToolTipText("Genera tantas sentencias como registros tenga que eliminar");
        JRadioButton7.setText("Delete");
        JRadioButton7.setActionCommand("Delete");
        JRadioButton7.setMnemonic((int)'D');
        gTipo.add(JRadioButton7);
        JRadioButton7.setBounds(0,110,60,23);
        JRadioButton8.setToolTipText("Genera la sentencia CREATE TABLE");
        JRadioButton8.setText("Estructura");
        JRadioButton8.setActionCommand("Estructura");
        JRadioButton8.setMnemonic((int)'S');
        JRadioButton8.setEnabled(false);
        gTipo.add(JRadioButton8);
        JRadioButton8.setBounds(0,161,80,23);
        JPanel3.setBorder(titledBorder3);
        JPanel3.setLayout(null);
        getContentPane().add(JPanel3);
        JPanel3.setBounds(12,324,516,60);
        JLabel7.setText("Gestor de Bases de datos de destino");
        JPanel3.add(JLabel7);
        JLabel7.setForeground(java.awt.Color.black);
        JLabel7.setBounds(15,24,215,23);
        jcGdbs.setModel(TipoDeGestores);
        jcGdbs.setToolTipText("Tipo de base de datos");
        jcGdbs.setEnabled(false);
        JPanel3.add(jcGdbs);
        jcGdbs.setBounds(240,24,168,24);
        JPanel4.setBorder(titledBorder4);
        JPanel4.setLayout(null);
        getContentPane().add(JPanel4);
        JPanel4.setBounds(12,384,516,120);
        JPanel4.add(jtArchivo);
        jtArchivo.setBounds(132,28,336,23);
        jbSelArchivo.setToolTipText("Buscar un archivo");
        jbSelArchivo.setText("...");
        jbSelArchivo.setActionCommand("...");
        JPanel4.add(jbSelArchivo);
        jbSelArchivo.setBounds(469,28,35,23);
        jcDatabase.setModel(Gestores);
        jcDatabase.setToolTipText("Base de datos destino");
        jcDatabase.setEnabled(false);
        JPanel4.add(jcDatabase);
        jcDatabase.setBounds(132,56,168,23);
        JLabel8.setText("Tabla des.");
        JPanel4.add(JLabel8);
        JLabel8.setBounds(310,56,60,23);
        jcTabla2.setModel(TablasGestor);
        jcTabla2.setToolTipText("Tabla de destino");
        jcTabla2.setEnabled(false);
        JPanel4.add(jcTabla2);
        jcTabla2.setBounds(374,56,130,23);
        JLabel9.setText("Nueva tabla");
        JPanel4.add(JLabel9);
        JLabel9.setBounds(170,84,90,23);
        jtNuevaTabla.setToolTipText("Tabla a crear en el destino. S�lo si se selecciona en tabla destino \"Nueva\"");
        jtNuevaTabla.setEnabled(false);
        JPanel4.add(jtNuevaTabla);
        jtNuevaTabla.setBounds(240,84,264,23);
        gDestino.setLayout(new GridLayout(2,1,0,0));
        JPanel4.add(gDestino);
        gDestino.setBounds(15,26,110,50);
        JRadioButton10.setSelected(true);
        JRadioButton10.setToolTipText("Genera un archivo de texto en la ruta indicada");
        JRadioButton10.setText("Archivo de texto");
        JRadioButton10.setActionCommand("Archivo de texto");
        JRadioButton10.setMnemonic((int)'A');
        gDestino.add(JRadioButton10);
        JRadioButton10.setBounds(0,0,0,0);
        JRadioButton9.setToolTipText("Actualiza la informaci�n en la base de datos indicada");
        JRadioButton9.setText("Base de Datos");
        JRadioButton9.setActionCommand("Base de Datos");
        JRadioButton9.setMnemonic((int)'O');
        JRadioButton9.setEnabled(false);
        gDestino.add(JRadioButton9);
        JRadioButton9.setBounds(0,0,0,0);
        JPanel5.setLayout(new FlowLayout(FlowLayout.RIGHT,10,5));
        getContentPane().add(JPanel5);
        JPanel5.setBounds(12,504,516,36);
        jbExportar.setText("Exportar");
        jbExportar.setActionCommand("Exportar");
        jbExportar.setMnemonic((int)'E');
        JPanel5.add(jbExportar);
        jbExportar.setBounds(0,0,0,0);
        jbCancelar.setText("Cancelar");
        jbCancelar.setActionCommand("Cancelar");
        jbCancelar.setMnemonic((int)'C');
        JPanel5.add(jbCancelar);
        jbCancelar.setBounds(0,0,0,0);

        // REGISTER_LISTENERS
        SymAction lSymAction = new SymAction();
        jbSelArchivo.addActionListener(lSymAction);
        SymItem lSymItem = new SymItem();
        JRadioButton2.addItemListener(lSymItem);
        JRadioButton4.addItemListener(lSymItem);
        JRadioButton6.addItemListener(lSymItem);
        JRadioButton7.addItemListener(lSymItem);
        JRadioButton10.addItemListener(lSymItem);
        JRadioButton9.addItemListener(lSymItem);
        jcClave1.addItemListener(lSymItem);
        jcClave2.addItemListener(lSymItem);
        jcDatabase.addItemListener(lSymItem);
        jcTabla2.addItemListener(lSymItem);
        JRadioButton3.addItemListener(lSymItem);
        jbExportar.addActionListener(lSymAction);
        jbCancelar.addActionListener(lSymAction);
        JRadioButton1.addItemListener(lSymItem);
        JRadioButton5.addItemListener(lSymItem);
        // FIN REGISTER_LISTENERS
    }

    public Exportar()
    {
            this((Frame)null);
    }

    public Exportar(String sTitle)
    {
            this();
            setTitle(sTitle);
    }

    public void Inicializar(String jdbcDriverURL1, String jdbcDriverClass1, String user1, String password1)
    {
        jdbcDriverURL = jdbcDriverURL1;
        jdbcDriverClass = jdbcDriverClass1;
        user = user1;
        password = password1;
        Cancelar = true;
    }

    public void setVisible(boolean b)
    {
            if (b)
                    setLocation(50, 50);
            super.setVisible(b);
    }

    static public void main(String args[])
    {
            (new Exportar()).setVisible(true);
    }

    public void addNotify()
    {
            // Record the size of the window prior to calling parents addNotify.
            Dimension size = getSize();

            super.addNotify();

            if (frameSizeAdjusted)
                    return;
            frameSizeAdjusted = true;

            // Adjust size of frame according to the insets
            Insets insets = getInsets();
            setSize(insets.left + insets.right + size.width, insets.top + insets.bottom + size.height);
    }

    boolean frameSizeAdjusted = false;

    javax.swing.JPanel JPanel1 = new javax.swing.JPanel();
//    javax.swing.JButtonGroupPanel gExportar = new javax.swing.JButtonGroupPanel();
    javax.swing.JPanel gExportar = new javax.swing.JPanel();

    javax.swing.JRadioButton JRadioButton1 = new javax.swing.JRadioButton();
    javax.swing.JRadioButton JRadioButton2 = new javax.swing.JRadioButton();
    javax.swing.JRadioButton JRadioButton3 = new javax.swing.JRadioButton();
    javax.swing.JTextField jtQuery = new javax.swing.JTextField();
    javax.swing.JComboBox jcTabla1 = new javax.swing.JComboBox();
    javax.swing.JLabel JLabel10 = new javax.swing.JLabel();
    javax.swing.JTextField jtFiltro = new javax.swing.JTextField();
    javax.swing.JPanel JPanel2 = new javax.swing.JPanel();
    javax.swing.JLabel JLabel1 = new javax.swing.JLabel();
    javax.swing.JTextField jtSeparador = new javax.swing.JTextField();
    javax.swing.JLabel JLabel2 = new javax.swing.JLabel();
    javax.swing.JTextField jtCadenas = new javax.swing.JTextField();
    javax.swing.JCheckBox chConNombres = new javax.swing.JCheckBox();
    javax.swing.JLabel JLabel11 = new javax.swing.JLabel();
    javax.swing.JTextField jtTablaDestino = new javax.swing.JTextField();
    javax.swing.JLabel JLabel3 = new javax.swing.JLabel();
    javax.swing.JComboBox jcClave1 = new javax.swing.JComboBox();
    javax.swing.JLabel JLabel4 = new javax.swing.JLabel();
    javax.swing.JComboBox jcClave2 = new javax.swing.JComboBox();
//    javax.swing.JButtonGroupPanel gTipo = new javax.swing.JButtonGroupPanel();
    javax.swing.JPanel gTipo = new javax.swing.JPanel();

    javax.swing.JRadioButton JRadioButton4 = new javax.swing.JRadioButton();
    javax.swing.JRadioButton JRadioButton5 = new javax.swing.JRadioButton();
    javax.swing.JRadioButton JRadioButton6 = new javax.swing.JRadioButton();
    javax.swing.JRadioButton JRadioButton7 = new javax.swing.JRadioButton();
    javax.swing.JRadioButton JRadioButton8 = new javax.swing.JRadioButton();
    javax.swing.JPanel JPanel3 = new javax.swing.JPanel();
    javax.swing.JLabel JLabel7 = new javax.swing.JLabel();
    javax.swing.JComboBox jcGdbs = new javax.swing.JComboBox();
    javax.swing.JPanel JPanel4 = new javax.swing.JPanel();
    javax.swing.JTextField jtArchivo = new javax.swing.JTextField();
    javax.swing.JButton jbSelArchivo = new javax.swing.JButton();
    javax.swing.JComboBox jcDatabase = new javax.swing.JComboBox();
    javax.swing.JLabel JLabel8 = new javax.swing.JLabel();
    javax.swing.JComboBox jcTabla2 = new javax.swing.JComboBox();
    javax.swing.JLabel JLabel9 = new javax.swing.JLabel();
    javax.swing.JTextField jtNuevaTabla = new javax.swing.JTextField();
//    javax.swing.JButtonGroupPanel gDestino = new javax.swing.JButtonGroupPanel();
    javax.swing.JPanel gDestino = new javax.swing.JPanel();

    javax.swing.JRadioButton JRadioButton10 = new javax.swing.JRadioButton();
    javax.swing.JRadioButton JRadioButton9 = new javax.swing.JRadioButton();
    javax.swing.JPanel JPanel5 = new javax.swing.JPanel();
    javax.swing.JButton jbExportar = new javax.swing.JButton();
    javax.swing.JButton jbCancelar = new javax.swing.JButton();
    javax.swing.border.EtchedBorder etchedBorder1 = new javax.swing.border.EtchedBorder();
    javax.swing.border.TitledBorder titledBorder1 = new javax.swing.border.TitledBorder(etchedBorder1,"Exportar");
    javax.swing.border.TitledBorder titledBorder2 = new javax.swing.border.TitledBorder(etchedBorder1,"Tipo");
    javax.swing.border.TitledBorder titledBorder3 = new javax.swing.border.TitledBorder(etchedBorder1,"Formato");
    javax.swing.border.TitledBorder titledBorder4 = new javax.swing.border.TitledBorder(etchedBorder1,"Destino");
    javax.swing.DefaultComboBoxModel TablasActuales = new javax.swing.DefaultComboBoxModel();
    javax.swing.DefaultComboBoxModel TipoDeGestores = new javax.swing.DefaultComboBoxModel();
    javax.swing.DefaultComboBoxModel Gestores = new javax.swing.DefaultComboBoxModel();
    javax.swing.DefaultComboBoxModel TablasGestor = new javax.swing.DefaultComboBoxModel();
    javax.swing.DefaultComboBoxModel Campos = new javax.swing.DefaultComboBoxModel();
    javax.swing.DefaultComboBoxModel Campos2 = new javax.swing.DefaultComboBoxModel();

    java.awt.FileDialog DialogoGuardar = new java.awt.FileDialog(new java.awt.Frame());
   
    public Vector vConexiones = new Vector();

    public boolean Cancelar = true;
   
    class SymAction implements java.awt.event.ActionListener
    {
            public void actionPerformed(java.awt.event.ActionEvent event)
            {
                    Object object = event.getSource();
                    if (object == jbSelArchivo)
                            jbSelArchivo_actionPerformed(event);
                    else if (object == jbExportar)
                            jbExportar_actionPerformed(event);
                    else if (object == jbCancelar)
                            jbCancelar_actionPerformed(event);
            }
    }

    void jbSelArchivo_actionPerformed(java.awt.event.ActionEvent event)
    {
        try {
            DialogoGuardar.setMode(FileDialog.SAVE);
            DialogoGuardar.setTitle("Exportar Datos");
            DialogoGuardar.setVisible(true);
            if(DialogoGuardar.getFile() != null)
                jtArchivo.setText(DialogoGuardar.getDirectory() + DialogoGuardar.getFile());
        } catch (Exception e) {
            Trackbug.error(e, e.getMessage());
        }
    }

    class SymItem implements java.awt.event.ItemListener
    {
            public void itemStateChanged(java.awt.event.ItemEvent event)
            {
                    Object object = event.getSource();
                    if (object == JRadioButton2)
                            JRadioButton2_itemStateChanged(event);
                    else if (object == JRadioButton4)
                            JRadioButton4_itemStateChanged(event);
                    else if (object == JRadioButton6)
                            JRadioButton6_itemStateChanged(event);
                    else if (object == JRadioButton7)
                            JRadioButton7_itemStateChanged(event);
                    else if (object == JRadioButton10)
                            JRadioButton10_itemStateChanged(event);
                    else if (object == JRadioButton9)
                            JRadioButton9_itemStateChanged(event);
                    else if (object == jcClave1)
                            jcClave1_itemStateChanged(event);
                    else if (object == jcClave2)
                            jcClave2_itemStateChanged(event);
                    else if (object == jcDatabase)
                            jcDatabase_itemStateChanged(event);
                    else if (object == jcTabla2)
                            jcTabla2_itemStateChanged(event);
                    else if (object == JRadioButton3)
                            JRadioButton3_itemStateChanged(event);
                    else if (object == JRadioButton1)
                            JRadioButton1_itemStateChanged(event);
                    else if (object == JRadioButton5)
                            JRadioButton5_itemStateChanged(event);
            }
    }

    void JRadioButton2_itemStateChanged(java.awt.event.ItemEvent event)
    {
            if(JRadioButton2.isSelected())
            {
                if(jcTabla1.getModel().getSize() == 0)
                    jcTabla1.setModel(CargarTablas(false));
                jcTabla1.setEnabled(true);
                JRadioButton8.setEnabled(true);
            }
            else
                jcTabla1.setEnabled(false);
    }

    void JRadioButton4_itemStateChanged(java.awt.event.ItemEvent event)
    {
            if(JRadioButton4.isSelected())
            {
                jtSeparador.setEnabled(true);
                jtCadenas.setEnabled(true);
                chConNombres.setEnabled(true);
                jcGdbs.setEnabled(false);
                JRadioButton10.setSelected(true);
                JRadioButton9.setEnabled(false);
            }
            else
            {
                jtSeparador.setEnabled(false);
                jtCadenas.setEnabled(false);
                chConNombres.setEnabled(false);
                jcGdbs.setEnabled(true);
                JRadioButton9.setEnabled(true);
            }
    }

    void JRadioButton6_itemStateChanged(java.awt.event.ItemEvent event)
    {
            if(JRadioButton6.isSelected() || JRadioButton7.isSelected())
            {
                jcClave1.setEnabled(true);
                jcClave2.setEnabled(true);
                if(JRadioButton1.isSelected() || JRadioButton2.isSelected())
                jtTablaDestino.setEnabled(true);
                if(JRadioButton2.isSelected())
                {
                    CargarCampos(Campos, Campos2, (String)jcTabla1.getSelectedItem());
                }
                else if(JRadioButton1.isSelected())
                {
                    // tiene que cargar los datos para tener la referecia de los campos
                    // busca la tabla.
                    String tabla = jtQuery.getText();
                    int inicio=0,fin=0;
                    tabla = tabla.toLowerCase();
                    inicio = tabla.indexOf("from");
                    if(inicio != -1)
                    {
                        inicio += 5;
                        tabla = tabla.substring(inicio);
                        fin = tabla.indexOf("where");
                        if(fin == -1) fin = tabla.indexOf("order by");
                        if(fin != -1) tabla = tabla.substring(0, fin).trim();

                        // Ya tengo la tabla
                    CargarCampos(Campos, Campos2, tabla);
                    }
                }
                else
                {
                    Campos.removeAllElements();
                    Campos2.removeAllElements();
                    Campos.addElement("No disponibles");
                    Campos2.addElement("No disponibles");
                }
            }
            else
            {
                jcClave1.setEnabled(false);
                jcClave2.setEnabled(false);
            if(JRadioButton5.isSelected() == false || JRadioButton3.isSelected())
                jtTablaDestino.setEnabled(false);
            }
    }

    void JRadioButton7_itemStateChanged(java.awt.event.ItemEvent event)
    {
            JRadioButton6_itemStateChanged(event);
    }

    void JRadioButton10_itemStateChanged(java.awt.event.ItemEvent event)
    {
            if(JRadioButton10.isSelected())
            {
                jtArchivo.setEnabled(true);
                jbSelArchivo.setEnabled(true);
            }
            else
            {
                jtArchivo.setEnabled(false);
                jbSelArchivo.setEnabled(false);
            }
    }

    void JRadioButton9_itemStateChanged(java.awt.event.ItemEvent event)
    {
if (true) return;
        if(JRadioButton9.isSelected())
        {
            jcDatabase.setEnabled(true);
            jcTabla2.setEnabled(true);
            if(jcTabla2.getSelectedIndex() != -1 && jcTabla2.getSelectedItem().equals("Nueva"))
                jtNuevaTabla.setEnabled(true);
            else
                jtNuevaTabla.setEnabled(false);

            if(Gestores.getSize() == 0)
            {
                Gestores.addElement("GSDB Actual");

                // Tiene que cargar los datos de las conexiones.
                Properties Propiedades = new Properties();

                File fl = new File(".", "GestDB.ini");
                if ( fl.exists() )
                {
                    try{            
                        FileInputStream fls = new FileInputStream("./GestDB.ini");
                        Propiedades.load(fls);
                    }catch(java.io.IOException e) {
                        Trackbug.error(e, e.getMessage());
                    }               
            }


            vConexiones.removeAllElements();
            String stemp = "", stemp2 = "", us = "", pas= "", si = "";
            int pos = 1;
            StringTokenizer st1;
            for (Enumeration e = Propiedades.elements() ; e.hasMoreElements() ;)
            {
                stemp = (String)e.nextElement();
                vConexiones.addElement(stemp);
                // En Gestores s�lo hay que meter ges gestor, la ip, el id y el usuario
                        st1 = new StringTokenizer(stemp, ":", false);
                        stemp2 = "" + Integer.toString(pos);
                        if(st1.hasMoreTokens())
                            stemp2 += " [" + st1.nextToken() + "] ";
                        if(st1.hasMoreTokens())
                            us = st1.nextToken();
                        if(st1.hasMoreTokens())
                            pas = st1.nextToken();
                        if(st1.hasMoreTokens())
                            si = st1.nextToken();
                        if(st1.hasMoreTokens())
                            stemp2 += st1.nextToken() + ", ";

                        stemp2 += ", " + si + ", " + us;
                Gestores.addElement(stemp2);
                ++pos;
            }
                }
            }
            else
            {
                jcDatabase.setEnabled(false);
                jcTabla2.setEnabled(false);
                jtNuevaTabla.setEnabled(false);
            }
    }

    public javax.swing.DefaultComboBoxModel CargarTablas( boolean elenuevo)
    {
        Connection connection;
        Statement statement;
        ResultSet rs;
        String query = "Select ";

        try
        {
            Class.forName(jdbcDriverClass);
            connection = DriverManager.getConnection(jdbcDriverURL, user, password);
            statement = connection.createStatement();
            DatabaseMetaData dbmd = connection.getMetaData();
            String tabla = null;
            String tiposdetabla[] = new String[1];
            int numTiposTablas = 1;
            tiposdetabla[0] = "TABLE";
            int conta = 0;
            Vector vprueba = new Vector();
           
            // coge los datos
            rs = dbmd.getTables(null, null, null,tiposdetabla);
            while (rs.next())
            {
                tabla = rs.getString("TABLE_NAME");
                vprueba.addElement(tabla);
                conta++;
            }
    
            rs.close();
            statement.close();
            connection.close();
           
            if(elenuevo)
                vprueba.addElement("Nueva");
            javax.swing.DefaultComboBoxModel modelo = new javax.swing.DefaultComboBoxModel(vprueba);
            return modelo;
        }
        catch (ClassNotFoundException ex)
        {
            Trackbug.error(ex, "No se encuentra la clase driver del gestor de base de datos: " + ex.toString());
        }
        catch (SQLException ex)
        {
            Trackbug.error(ex, ex.getMessage());
        }
 
        javax.swing.DefaultComboBoxModel modelo = new javax.swing.DefaultComboBoxModel();
        return modelo;
    }

    private void CargarCampos(javax.swing.DefaultComboBoxModel modelo,
        javax.swing.DefaultComboBoxModel modelo2, String Tabla)
    {
        // limpio el modelo de elementos
        if(modelo.getSize() > 0)
        {
            modelo.removeAllElements();
            modelo2.removeAllElements();
        }

        Connection connection;

        if(Tabla == null || Tabla.length() == 0)
            return;
       
        try
        {
            connection = DriverManager.getConnection(jdbcDriverURL, user, password);
            DatabaseMetaData dbmd = connection.getMetaData();

            // coge los datos
            ResultSet r2 = dbmd.getColumns(null, null, Tabla, null);
            Vector vtemp2 = null;
            vCampos.removeAllElements();
            int itemp = 0;
            String stemp ="";
            String columna = "";
            while (r2.next())
            {
                vtemp2 = new Vector(14,10);
               
                columna = r2.getString("COLUMN_NAME");
                vtemp2.addElement(columna);
                vtemp2.addElement((String) mTiposSql.get(Short.toString(r2.getShort("DATA_TYPE"))));
                vtemp2.addElement(r2.getString("TYPE_NAME"));
                vtemp2.addElement("" + r2.getInt("COLUMN_SIZE"));
                vtemp2.addElement("" + r2.getInt("DECIMAL_DIGITS"));
                vtemp2.addElement("" + r2.getInt("NUM_PREC_RADIX"));

                itemp = r2.getInt("NULLABLE");
                switch(itemp)
                {
                    case 0:  stemp = "No null";break;
                    case 1:  stemp = "Permite null";break;
                    case 2:  stemp = "desconocido";break;
                    default: stemp = Integer.toString(itemp);
                }
                vtemp2.addElement(stemp);
               
                vtemp2.addElement(r2.getString("REMARKS"));
                vtemp2.addElement(r2.getString("COLUMN_DEF"));
                vtemp2.addElement("" + r2.getInt("CHAR_OCTET_LENGTH"));
                vtemp2.addElement("" + r2.getInt("ORDINAL_POSITION"));
                vtemp2.addElement(r2.getString("IS_NULLABLE"));

                vCampos.addElement(vtemp2);

                modelo.addElement(columna);
                modelo2.addElement(columna);
           
            r2.close();
            connection.close();
        } catch(Exception e)
        {
            Trackbug.error(e, e.getMessage());
        }        
    }


  void jcClave1_itemStateChanged(java.awt.event.ItemEvent event)
  {
  }

  void jcClave2_itemStateChanged(java.awt.event.ItemEvent event)
  {
  }

  void jcDatabase_itemStateChanged(java.awt.event.ItemEvent event)
  {
      if(jcDatabase.getSelectedItem().equals("GSDB Actual"))
      {
//          TablasGestor.removeAllElements();
            Vector vges = new Vector();
          javax.swing.ComboBoxModel modelo1 = jcTabla1.getModel();
        int i = modelo1.getSize();
//        int i = TablasActuales.size();
        for(int j = 0; j < i ; j++)
            vges.addElement(modelo1.getElementAt(j));
//            TablasGestor.addElement(TablasActuales.elementAt(j));
//          TablasGestor.addElement("Nueva");
          vges.addElement("Nueva");

          javax.swing.ComboBoxModel modeloGes = new javax.swing.DefaultComboBoxModel(vges);
          jcTabla2.setModel(modeloGes);
      }
      else
      {
          if(jcDatabase.getSelectedIndex() != -1)
          {
              String stemp = (String)vConexiones.elementAt(jcDatabase.getSelectedIndex());
             
            StringTokenizer st1 = new StringTokenizer(stemp, ":", false);
            String gsdb = null,sid = null,ip = null,puerto = null,user = null,pass = null;
            if(st1.hasMoreTokens())
                gsdb = st1.nextToken();
            if(st1.hasMoreTokens())
                user = st1.nextToken();
            if(st1.hasMoreTokens())
                pass = st1.nextToken();
            if(st1.hasMoreTokens())
                sid = st1.nextToken();
            if(st1.hasMoreTokens())
                ip = st1.nextToken();
            if(st1.hasMoreTokens())
                puerto = st1.nextToken();
             
              jcTabla2.setModel(CargarTablas(true));
          }
      }
  }

  void jcTabla2_itemStateChanged(java.awt.event.ItemEvent event)
  {
      if(jcTabla2.getModel().getSelectedItem().equals("Nueva"))
          jtNuevaTabla.setEnabled(true);
      else
          jtNuevaTabla.setEnabled(false);
  }

  void JRadioButton3_itemStateChanged(java.awt.event.ItemEvent event)
  {
    // to do: code goes here.
    if(JRadioButton3.isSelected())
    {
          JRadioButton8.setEnabled(true);
        jtFiltro.setEnabled(true);
    }
    else
        jtFiltro.setEnabled(false);
  }

  void jbExportar_actionPerformed(java.awt.event.ActionEvent event)
  {
      String sMensaje = "";
     
            // Si esta seleccionada la opci�n datos query
            // tiene que estar rellena la query
            if (JRadioButton1.isSelected() && jtQuery.getText().length() == 0)
                sMensaje += "- Tiene que rellenar la Query.\n\n";

            // Si esta seleccionada la opci�n de exportar la base de datos
            // tiene que ser a una distinta a la actual
            if (JRadioButton3.isSelected() && jcDatabase.getSelectedIndex() != -1 &&
                jcDatabase.getSelectedItem().equals("GSDB Actual"))
                sMensaje += "- No puede exportar la base de datos sobre si misma.\n\n";

            // si son deletes, no se pueden lanzar sobre una tabla nueva
            if(JRadioButton7.isSelected() && jtNuevaTabla.isEnabled())
                sMensaje += "- No puede borrar registros de una tabla que no existe.\n\n";

            // Si se selecciona estructura s�lo puede ser a un archivo o a una tabla nueva.
            if(JRadioButton8.isSelected() && JRadioButton9.isSelected() &&
                jtNuevaTabla.isEnabled() == false)
                sMensaje += "- Si se selecciona la opci�n de 'estructura', s�lo puede exportarla a un archivo o a una tabla nueva.\n\n";

            // Si se indica tabla origen, tiene que estar seleccionada alguna.
            if(JRadioButton2.isSelected() && jcTabla1.getSelectedIndex() == -1)
                sMensaje += "- Tiene que indicar una tabla origen.\n\n";

            // Si esta seleccionado update o delete al menos tiene que tener una clave indicada
            if((JRadioButton6.isSelected() || JRadioButton6.isSelected()) &&
                    jcClave1.getSelectedIndex() == -1)
                sMensaje += "- Tiene que indicar al menos una clave principal por la se compar�n los campos.\n\n";

            // Tiene que indicar un tipo gestor de base de datos si no se exportan datos a un archivo de texto.
            if((JRadioButton4.isSelected() && JRadioButton10.isSelected()) == false &&
                    jcGdbs.getSelectedIndex() == -1)
                sMensaje += "- Tiene que indicar el tipo de gestor de base de datos.\n\n";

            if (JRadioButton9.isSelected() && jcDatabase.getSelectedIndex() == -1)
                sMensaje += "- Tiene que indicar la base de datos de destino.\n\n";

            if (JRadioButton1.isSelected() && JRadioButton9.isSelected() &&
                    jcTabla2.getSelectedIndex() == -1)
                sMensaje += "- Tiene que indicar la tabla de destino.\n\n";


            if(jtNuevaTabla.isEnabled() && jtNuevaTabla.getText().length() == 0)
                sMensaje += "- Tiene que indicar el nombre de la tabla nueva.\n\n";

            if(sMensaje.length() > 0)
            {
                Mensaje msj = new Mensaje("Error");
                msj.setMensaje(sMensaje);
                msj.setVisible(true);
                Cancelar = false;
            }
            else
            {
                Cancelar = false;
                try {
                    // Exportar Hide the Exportar
                    this.setVisible(false);
                } catch (java.lang.Exception e) {
                    Trackbug.error(e, e.getMessage());
                }
            }
  }

  void jbCancelar_actionPerformed(java.awt.event.ActionEvent event)
  {
    jbCancelar_actionPerformed_Interaction1(event);
  }

  void jbCancelar_actionPerformed_Interaction1(java.awt.event.ActionEvent event)
  {
    try {
      // Exportar Hide the Exportar
      this.setVisible(false);
    } catch (java.lang.Exception e) {
                    Trackbug.error(e, e.getMessage());
    }
  }

  void JRadioButton1_itemStateChanged(java.awt.event.ItemEvent event)
  {
      if(JRadioButton1.isSelected())
      {
          JRadioButton8.setEnabled(false);
          jtQuery.setEnabled(true);
      }
      else
          jtQuery.setEnabled(false);
  }

  void JRadioButton5_itemStateChanged(java.awt.event.ItemEvent event)
  {
      if(JRadioButton5.isSelected() &&
          (JRadioButton1.isSelected() || JRadioButton2.isSelected()))
          jtTablaDestino.setEnabled(true);
      else
          jtTablaDestino.setEnabled(false);
  }
}
TOP

Related Classes of com.GestDB.sql.Exportar

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.