// Wanda POS - Africa's Gift to the World // Copyright (c) 2014-2015 IT-Kamer & previous Unicenta POS and Openbravo POS works // www.erp-university-africa.com // // This file is part of Wanda POS // // Wanda POS is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Wanda POS is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Wanda POS. If not, see <http://www.gnu.org/licenses/>. package com.openbravo.data.loader; import com.openbravo.basic.BasicException; import java.sql.*; /** * * @author JG uniCenta */ public abstract class JDBCSentence extends BaseSentence { // Conexion // protected Connection m_c; /** * */ protected Session m_s; /** Creates a new instance of BaseSentence * @param s */ public JDBCSentence(Session s) { super(); m_s = s; } /** * */ protected static final class JDBCDataResultSet implements DataResultSet { private ResultSet m_rs; private SerializerRead m_serread; // private int m_iColumnCount; /** * * @param rs * @param serread */ public JDBCDataResultSet(ResultSet rs, SerializerRead serread) { m_rs = rs; m_serread = serread; // m_iColumnCount = -1; } /** * * @param columnIndex * @return * @throws BasicException */ public Integer getInt(int columnIndex) throws BasicException { try { int iValue = m_rs.getInt(columnIndex); return m_rs.wasNull() ? null : new Integer(iValue); } catch (SQLException eSQL) { throw new BasicException(eSQL); } } /** * * @param columnIndex * @return * @throws BasicException */ public String getString(int columnIndex) throws BasicException { try { return m_rs.getString(columnIndex); } catch (SQLException eSQL) { throw new BasicException(eSQL); } } /** * * @param columnIndex * @return * @throws BasicException */ public Double getDouble(int columnIndex) throws BasicException { try { double dValue = m_rs.getDouble(columnIndex); return m_rs.wasNull() ? null : new Double(dValue); } catch (SQLException eSQL) { throw new BasicException(eSQL); } } /** * * @param columnIndex * @return * @throws BasicException */ public Boolean getBoolean(int columnIndex) throws BasicException { try { boolean bValue = m_rs.getBoolean(columnIndex); return m_rs.wasNull() ? null : new Boolean(bValue); } catch (SQLException eSQL) { throw new BasicException(eSQL); } } /** * * @param columnIndex * @return * @throws BasicException */ public java.util.Date getTimestamp(int columnIndex) throws BasicException { try { java.sql.Timestamp ts = m_rs.getTimestamp(columnIndex); return ts == null ? null : new java.util.Date(ts.getTime()); } catch (SQLException eSQL) { throw new BasicException(eSQL); } } /** * * @param columnIndex * @return * @throws BasicException */ public byte[] getBytes(int columnIndex) throws BasicException { try { return m_rs.getBytes(columnIndex); } catch (SQLException eSQL) { throw new BasicException(eSQL); } } /** * * @param columnIndex * @return * @throws BasicException */ public Object getObject(int columnIndex) throws BasicException { try { return m_rs.getObject(columnIndex); } catch (SQLException eSQL) { throw new BasicException(eSQL); } } /** * * @return * @throws BasicException */ public DataField[] getDataField() throws BasicException { try { ResultSetMetaData md = m_rs.getMetaData(); DataField[] df = new DataField[md.getColumnCount()]; for (int i = 0; i < df.length; i++) { df[i] = new DataField(); df[i].Name = md.getColumnName(i + 1); df[i].Size = md.getColumnDisplaySize(i + 1); df[i].Type = md.getColumnType(i + 1); } return df; } catch (SQLException eSQL) { throw new BasicException(eSQL); } } /** * * @return * @throws BasicException */ @Override public Object getCurrent() throws BasicException { return m_serread.readValues(this); } /** * * @return * @throws BasicException */ @Override public boolean next() throws BasicException { try { return m_rs.next(); } catch (SQLException eSQL) { throw new BasicException(eSQL); } } /** * * @throws BasicException */ @Override public void close() throws BasicException { try { m_rs.close(); } catch (SQLException eSQL) { throw new BasicException(eSQL); } } /** * * @return * @throws BasicException */ @Override public int updateCount() throws BasicException { return -1; // es decir somos datos. } } }