/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package CapturarPantallas;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 *Clase que se conecta via jdbc a la base de datos para obtener la descripcion y numero de las transacciones
 * @author Bantec inc.
 */
public class Conexion {
//coneccion

    private Connection con = null;
    //Array de descripciones de las transacciones
    private String Descripcion[];

    /**
     * constructor 
     * @throws java.sql.SQLException error al conectarse a la base de datos
     */
    public Conexion() throws SQLException {
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            //   @TNSNames_Entry,  userid,  password
            //  con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.7:1521:fitbank", "ribtest", "ribtest");
            //con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:51521:fitbank", "ribtest", "ribtest");
            con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.7:1521:fitbank", "ribtest", "ribtest");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

    }

    @SuppressWarnings("empty-statement")
    /**
     * obtiene el numero de transacciones desde la base de datos
     * @return Array de transacciones
     */
    public String[] getTransaccion(String ptrans, String pcsub) {
        String trans[] = new String[400];
        setDescripcion(new String[400]);
        int c = 0;
        Statement stmt = null;
        try {
            stmt = con.createStatement();
            ResultSet rs =
                    stmt.executeQuery("SELECT tf.csubsistema, tf.ctransaccion, tt.descripcion " + " FROM tformatoxml tf ,tsubsistematransacciones tt  " +
                    " WHERE tf.csubsistema like '" + pcsub + "' and tf.ctransaccion like " + "'" + ptrans + "' " +
                    " and tf.fhasta > sysdate " +
                    " and tt.ctransaccion=tf.ctransaccion " +
                    " and tt.csubsistema=tf.csubsistema " +
                    " and tt.fhasta > sysdate " +
                    " order by  tf.csubsistema,tf.ctransaccion ");

            // stmt.executeQuery("select * FROM tusuariosesiones WHERE cusuario='RROMAN' ");
            while (rs.next()) {
                trans[c] = rs.getObject("ctransaccion").toString();
                getDescripcion()[c] = rs.getObject("descripcion").toString();
                c++;
            }
            System.out.println("registros : " + c);
        } catch (SQLException sqle) {
            sqle.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (con != null) {
                try {
                    con.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        return trans;
    }

    /**
     * array de descripcion de transacciones
     * @return Array descripciones
     */
    public String[] getDescripcion() {
        return Descripcion;
    }

    /**
     * modifica el array de las descripciones 
     * @param Descripcion Array de descripciones 
     */
    public void setDescripcion(String[] Descripcion) {
        this.Descripcion = Descripcion;
    }
}
