public List<ResultRow> executeQueryResult(String sQuery) throws SQLException
  {
    //System.out.println(sQuery+"\n");
    try {
      if(m_Connection==null || m_Connection.isClosed())
        connect();
      Statement stmt = m_Connection.createStatement();
      ResultSet rs = stmt.executeQuery(sQuery);
      List results = new ArrayList<>();
      while (rs.next())
      {
        Map<Integer, Result> resultsRow=new WorkingMap<>();
        for(int i=1;i<=rs.getMetaData().getColumnCount();i++)
        {
          Result result = new Result(i, rs.getMetaData().getColumnName(i), rs.getString(i));
          resultsRow.put(i, result);
        }
        results.add(new ResultRow(resultsRow));
      }
      if(m_Connection!=null && !m_Connection.isClosed() && !m_bTransactionMode)
        disconnect();
      return results;
    } catch(SQLException ex) {
      bMaintainConnection=false;
      disconnect();
      throw ex;
    }
  }