synchronized boolean getMoreResults(Tds tds, SQLWarningChain wChain, boolean allowTdsRelease) throws SQLException
public synchronized boolean getMoreResults() throws SQLException
    synchronized boolean getMoreResults(Tds tds, SQLWarningChain wChain, boolean allowTdsRelease)        throws SQLException    {        updateCount = -1;        if( tds == null )            return false;        // Reset all internal variables (do it before checking for more results)        closeResults(false);        // SAfe Synchronize on the Tds to make sure noone else can call        //      Tds.skipToEnd while we're processing the results        synchronized( tds )        {            try            {                tds.goToNextResult(wChain, this);                if( !tds.moreResults() )                {                    if( allowTdsRelease )                        releaseTds();                    return false;                }                // SAfe We found a ResultSet                if( tds.isResultSet() )                {                    results = new TdsResultSet(tds, this, wChain, fetchSize);                    return true;                }                // SAfe It's a row count. Only TDS_DONE for Statements and                //      TDS_DONEINPROC for PreparedStatements are row counts                PacketEndTokenResult end =                    (PacketEndTokenResult)tds.processSubPacket();                updateCount = end.getRowCount();                // SAfe Eat up all packets until the next result or the end                tds.goToNextResult(wChain, this);                if( allowTdsRelease )                    releaseTds();                wChain.checkForExceptions();                return false;            }            catch( Exception ex )            {                releaseTds();                if( ex instanceof SQLException )                    throw (SQLException)ex;                else                    throw new SQLException("Network error: " + ex.getMessage());            }        }    }