public static function queryCursor(iCondition $objConditions, $objOptionalClauses = null, $mixParameterArray = null)
    {
        // Get the query statement
        try {
            $strQuery = static::buildQueryStatement($objQueryBuilder, $objConditions, $objOptionalClauses,
                $mixParameterArray, false);
        } catch (Caller $objExc) {
            $objExc->incrementOffset();
            throw $objExc;
        }

        // Pull Expansions
        $objExpandAsArrayNode = $objQueryBuilder->ExpandAsArrayNode;
        if (!empty ($objExpandAsArrayNode)) {
            throw new Caller ("Cannot use QueryCursor with ExpandAsArray");
        }

        // Perform the query
        $objDbResult = $objQueryBuilder->Database->query($strQuery);

        // Get the alias array so we know how to instantiate a row from the result
        $objDbResult->ColumnAliasArray = $objQueryBuilder->ColumnAliasArray;
        return $objDbResult;
    }