public DataObject executeQuery()

in rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ReadCommandImpl.java [269:302]


    public DataObject executeQuery() {

        if (statement.getConnection() == null) {
            throw new RuntimeException("A DASConnection object must be specified before executing the query.");
        }

        boolean success = false;
        try {
        	// execute query
            List results = statement.executeQuery(parameters);
            success = true;
            // if result set contains less columns than result descriptors, crop result descriptors
            if (resultDescriptors != null && results.size() > 0) {
            	ResultSet resultSet = (ResultSet) results.get(0);
            	ResultSetMetaData resultSetMetadata = resultSet.getMetaData();
            	int columnCount = resultSetMetadata.getColumnCount();
            	int resultDescriptorCount = resultDescriptors.size();
            	if (resultDescriptorCount > columnCount) {
            		resultDescriptors = resultDescriptors.subList(0, columnCount);
                	refreshResultSetShape();
            	}
            }
            // build graph
            return buildGraph(results);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        } finally {
            if (success) {
                statement.getConnection().cleanUp();
            } else {
                statement.getConnection().errorCleanUp();
            }
        }
    }