}
public void performAction(Connection connection, OperationObserver observer)
throws SQLException, Exception {
ProcedureTranslator transl = new ProcedureTranslator();
transl.setAdapter(getAdapter());
transl.setQuery(query);
transl.setEntityResolver(this.getEntityResolver());
transl.setConnection(connection);
CallableStatement statement = (CallableStatement) transl.createStatement();
try {
// stored procedure may contain a mixture of update counts and result sets,
// and out parameters. Read out parameters first, then
// iterate until we exhaust all results