setRequiredTypes();
	public ResultSet executeQuery() throws SQLException {        Object syncObject = getSynchronizationObject();                synchronized(syncObject) {            try {                c.ensureInTransaction();                                prepareFixedStatement(procedureCall.getSQL(), true);                                if (!internalExecute(true))                     throw new FBSQLException(                            "No resultset for sql",                            FBSQLException.SQL_STATE_NO_RESULT_SET);                                setRequiredTypes();                if (c.willEndTransaction())                     return getCachedResultSet(false);                else                     return getResultSet();                            } catch(GDSException ex) {                throw new FBSQLException(ex);            } finally {                c.checkEndTransaction();            }        }    }