internal NpgsqlDataReader( ArrayList resultsets, ArrayList responses, NpgsqlConnection connection, CommandBehavior behavior) { _resultsets = resultsets; _responses = responses; _connection = connection; _rowIndex = -1; _resultsetIndex = 0; if (_resultsets.Count > 0) _currentResultset = (NpgsqlResultSet)_resultsets[_resultsetIndex]; _behavior = behavior; _isClosed = false; }
/// <summary> /// Advances the data reader to the next result, when multiple result sets were returned by the PostgreSQL backend. /// </summary> /// <returns>True if the reader was advanced, otherwise false.</returns> public Boolean NextResult() { NpgsqlEventLog.LogMethodEnter(LogLevel.Debug, CLASSNAME, "NextResult"); _currentResultset = null; while ((_resultsetIndex + 1) < _resultsets.Count && !HaveResultSet()) { _resultsetIndex++; _rowIndex = -1; _currentResultset = (NpgsqlResultSet)_resultsets[_resultsetIndex]; if (!HaveResultSet()) { String[] _returnStringTokens = ((String)_responses[_resultsetIndex]).Split(null); // whitespace separator. int responseAffectedRows = 0; try { responseAffectedRows = Int32.Parse(_returnStringTokens[_returnStringTokens.Length - 1]); } catch (FormatException) { responseAffectedRows = -1; } if (responseAffectedRows != -1) { if (_recordsAffected == -1) { _recordsAffected = responseAffectedRows; } else { _recordsAffected += responseAffectedRows; } } } } return(HaveResultSet()); }
/// <summary> /// Advances the data reader to the next result, when multiple result sets were returned by the PostgreSQL backend. /// </summary> /// <returns>True if the reader was advanced, otherwise false.</returns> public Boolean NextResult() { NpgsqlEventLog.LogMethodEnter(LogLevel.Debug, CLASSNAME, "NextResult"); if((_resultsetIndex + 1) < _resultsets.Count) { _resultsetIndex++; _rowIndex = -1; _currentResultset = (NpgsqlResultSet)_resultsets[_resultsetIndex]; return true; } else return false; }
/// <summary> /// Advances the data reader to the next result, when multiple result sets were returned by the PostgreSQL backend. /// </summary> /// <returns>True if the reader was advanced, otherwise false.</returns> public Boolean NextResult() { NpgsqlEventLog.LogMethodEnter(LogLevel.Debug, CLASSNAME, "NextResult"); _currentResultset = null; while((_resultsetIndex + 1) < _resultsets.Count && !HaveResultSet()) { _resultsetIndex++; _rowIndex = -1; _currentResultset = (NpgsqlResultSet)_resultsets[_resultsetIndex]; if (!HaveResultSet()) { String[] _returnStringTokens = ((String)_responses[_resultsetIndex]).Split(null); // whitespace separator. int responseAffectedRows = 0; try { responseAffectedRows = Int32.Parse(_returnStringTokens[_returnStringTokens.Length - 1]); } catch (FormatException) { responseAffectedRows = -1; } if (responseAffectedRows != -1) { if (_recordsAffected == -1) { _recordsAffected = responseAffectedRows; } else { _recordsAffected += responseAffectedRows; } } } } return HaveResultSet(); }