log.info("testExecutableProcedure");
if (log != null) log.info("testExecutableProcedure");
    public void testExecutableProcedure() throws Exception {                log.info("testExecutableProcedure");        FBManagedConnectionFactory mcf = initMcf();        DataSource ds = (DataSource)mcf.createConnectionFactory();        FBConnection c = (FBConnection)ds.getConnection();        Statement s = c.createStatement();        LocalTransaction t = c.getLocalTransaction();        Exception ex = null;        t.begin();        try {            s.execute("DROP PROCEDURE testproc");        }        catch (Exception e) {        }        t.commit();        t.begin();            s.execute(CREATE_PROCEDURE);        t.commit();        t.begin();        CallableStatement p = c.prepareCall("EXECUTE PROCEDURE testproc(?)");        p.setInt(1, 5);        assertTrue("execute returned false for execute procedure statement", p.execute());        assertTrue("wrong answer from sp invocation", p.getInt(1) == 5);        p.close();        t.commit();        t.begin();        s.execute("DROP PROCEDURE testproc");        s.close();        t.commit();        c.close();        if (ex != null) {            throw ex;        }    }