/** * @(#) PersistenciaVTaresanaTaclient.java */ package com.tarisan.control; import com.tarisan.data.VTaresanaTaclient; import com.tarisan.log.*; import com.tarisan.util.Utilidades; import com.tarisan.excepcion.ExcepcionTarisan; import java.sql.*; import java.util.Vector; /** * Controla los accesos a la persistencia para la entidad VTaresanaTaclient. * @author Dpto. Informática. * @version 1.0, 24/09/2003 */ public class PersistenciaVTaresanaTaclient { /** * El objeto Paginacion que controla el número de filas a mostrar por cada página. */ private Paginacion objPaginacion = new Paginacion(); /** * Obtiene el valor del objeto Paginacion para saber que página se está visualizando. * @return El objeto Paginacion. */ public Paginacion getPaginacion() { return objPaginacion; } /** * Selecciona los registros de la JOIN entre las tablas TARESANA y ttclient en función de la sentencia SELECT indicada. * @param sqlSelect La sentencia SELECT de selección. * @param pagina Número de página a mostrar. * @param aCondiciones Array que contiene los parámetros utilizados en la sentencia SELECT. * @return El Vector con los registros seleccionados (todos pertenencientes a la clase VTaresanaTaclient). * @throws */ public Vector seleccionar(String sqlSelect, int pagina, Object[] aCondiciones) throws ExcepcionTarisan { int elementosPaginacion=1; Vector vResultado = new Vector(); VTaresanaTaclient VtaresanaTaclient = null; try { Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion(); ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect, aCondiciones); objPaginacion.inicializarPaginacion(rs); if (objPaginacion.getNumeroRegistrosTotales()!=0) { objPaginacion.realizarPaginacion(rs, pagina); while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina())) { VtaresanaTaclient = new VTaresanaTaclient(); VtaresanaTaclient.setFecha(rs.getDate("FECHA")); VtaresanaTaclient.setAutorizacion(rs.getInt("AUTORIZACION")); VtaresanaTaclient.setNombre(rs.getString("NOMBRE")); VtaresanaTaclient.setApellidos(rs.getString("APELLIDOS")); vResultado.addElement(VtaresanaTaclient); if (pagina!=0) //Se quiere realizar la paginacion elementosPaginacion++; } } rs.close(); ParametrosConfiguracion.dataStore.liberarConexion(conexion); LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + vResultado.size() + " registros de la tabla TARESANA (" + sqlSelect + ")"); } catch (ExcepcionTarisan sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TARESANA: " + sqle + " (" + sqlSelect + ")"); throw (ExcepcionTarisan)sqle; } catch(SQLException sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TARESANA: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } catch(Exception sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TARESANA: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } catch(Throwable sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TARESANA: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } return vResultado; } public Vector listado_analisis_por_medico(int medico, int intPagina) { Vector resul = null; StringBuffer strSql = new StringBuffer(); Object [] aCondiciones = new Object[1]; String consulta = ""; strSql.append("SELECT taresana.fecha, ttclient.nombre, ttclient.apellidos, taresana.autorizacion"); strSql.append(" FROM taresana, ttbenefi, ttclient"); strSql.append(" WHERE taresana.prescriptor=?"); strSql.append(" and taresana.colec=tabenefi.colectivo"); strSql.append(" and taresana.poliza=tabenefi.poliza"); strSql.append(" and taresana.orden=tabenefi.orden"); strSql.append(" and ttbenefi.cliente=ttclient.cliente"); strSql.append(" ORDER BY taresana.fecha DESC"); aCondiciones[0] = Integer.valueOf(medico); try { resul = this.seleccionar(strSql.toString(), intPagina, aCondiciones); consulta = Utilidades.obtenerSentenciaSQL(strSql, null, aCondiciones); } catch (ExcepcionTarisan e) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TARESANA-taclient (listado_analisis_por_medico): " + e + " (" + consulta + ")"); } return resul; } }