/// <summary>
		/// Creates an instance of CommandExecutedEventArgs class.
		/// </summary>
		/// <param name="dataReader"></param>
		/// <param name="commandText">The CommandText of the <see cref="FbCommand"/> that was executed.</param>
		/// <param name="rowsAffected"></param>
		public CommandExecutedEventArgs(
			FbDataReader	dataReader,
			string		commandText,
			int		rowsAffected)
		{
			this.dataReader	 = dataReader;
			this.commandText = commandText;
			this.rowsAffected = rowsAffected;
		}
		private bool IsReadOnly(FbDataReader r)
		{
			/* [0] = COMPUTED_BLR
			 * [1] = COMPUTED_SOURCE
			 */
			if (!r.IsDBNull(0) || !r.IsDBNull(1))
			{
				return true;
			}

			return false;
		}
		internal void CloseReader()
		{
			if (this.activeReader != null)
			{
				this.activeReader.Close();
				this.activeReader = null;
			}
		}
		/// <include file='Doc/en_EN/FbCommand.xml'	path='doc/class[@name="FbCommand"]/method[@name="ExecuteReader(System.Data.CommandBehavior)"]/*'/>
		public FbDataReader ExecuteReader(CommandBehavior behavior)
		{
			lock (this)
			{
				this.CheckCommand();

				try
				{
					this.ExecuteCommand(behavior, true);
				}
				catch (IscException ex)
				{
					this.DiscardImplicitTransaction();

					throw new FbException(ex.Message, ex);
				}
				catch
				{
					this.DiscardImplicitTransaction();

					throw;
				}
			}

			this.activeReader = new FbDataReader(this, this.connection, behavior);

			return this.activeReader;
		}
		/// <summary>
		/// The	trigger	function for <see cref="CommandExecuted"/> event.
		/// </summary>
		/// <param name="commandText">The <see cref="FbCommand.CommandText"/> of the executed SQL command.</param>
		/// <param name="dataReader">The <see cref="FbDataReader"/>	instance with the returned data. If	the	
		/// command	executed is	not	meant to return	data (ex: UPDATE, INSERT...) this parameter	must be	
		/// setled to <b>null</b>.</param>
		/// <param name="rowsAffected">The rows	that were affected by the executed SQL command.	If the executed	
		/// command	is not meant to	return this	kind of	information	(ex: SELECT) this parameter	must 
		/// be setled to <b>-1</b>.</param>
		protected virtual void OnCommandExecuted(string	commandText, FbDataReader dataReader, int rowsAffected)	
		{
			if (CommandExecuted	!= null) 
			{
				CommandExecutedEventArgs e = new CommandExecutedEventArgs(dataReader, commandText, rowsAffected);
				CommandExecuted(this, e);
			}
		}