Esempio n. 1
0
        internal NpgsqlDataReader Execute(CommandBehavior behavior = CommandBehavior.Default)
        {
            State = CommandState.InProgress;
            try
            {
                _queryIndex = 0;
                _connector.SendAllMessages();

                if (!IsPrepared)
                {
                    IBackendMessage msg;
                    do
                    {
                        msg = _connector.ReadSingleMessage();
                    } while (!ProcessMessageForUnprepared(msg, behavior));
                }

                var reader = new NpgsqlDataReader(this, behavior, _queries);
                reader.Init();
                _connector.CurrentReader = reader;
                return(reader);
            }
            catch
            {
                State = CommandState.Idle;
                throw;
            }
        }
Esempio n. 2
0
        internal NpgsqlDataReader Execute(CommandBehavior behavior = CommandBehavior.Default)
        {
            LogCommand();
            State = CommandState.InProgress;
            try
            {
                _queryIndex = 0;
                _connector.SendAllMessages();

                // We consume response messages, positioning ourselves before the response of the first
                // Execute.
                if (IsPrepared)
                {
                    if ((behavior & CommandBehavior.SchemaOnly) == 0)
                    {
                        // No binding in SchemaOnly mode
                        var msg = _connector.ReadSingleMessage(DataRowLoadingMode.NonSequential);
                        Contract.Assert(msg is BindCompleteMessage);
                    }
                }
                else
                {
                    IBackendMessage msg;
                    do
                    {
                        msg = _connector.ReadSingleMessage();
                    } while (!ProcessMessageForUnprepared(msg, behavior));
                }

                var reader = new NpgsqlDataReader(this, behavior, _queries);
                reader.Init();
                _connector.CurrentReader = reader;
                return(reader);
            }
            catch
            {
                State = CommandState.Idle;
                throw;
            }
        }
Esempio n. 3
0
        internal NpgsqlDataReader Execute(CommandBehavior behavior = CommandBehavior.Default)
        {
            State = CommandState.InProgress;
            try
            {
                _queryIndex = 0;
                _connector.SendAllMessages();

                if (!IsPrepared)
                {
                    IBackendMessage msg;
                    do
                    {
                        msg = _connector.ReadSingleMessage();
                    } while (!ProcessMessageForUnprepared(msg, behavior));
                }

                var reader = new NpgsqlDataReader(this, behavior, _queries);
                reader.Init();
                _connector.CurrentReader = reader;
                return reader;
            }
            catch
            {
                State = CommandState.Idle;
                throw;
            }
        }
Esempio n. 4
0
        internal NpgsqlDataReader Execute(CommandBehavior behavior = CommandBehavior.Default)
        {
            LogCommand();
            State = CommandState.InProgress;
            try
            {
                _queryIndex = 0;
                _connector.SendAllMessages();

                // We consume response messages, positioning ourselves before the response of the first
                // Execute.
                if (IsPrepared)
                {
                    if ((behavior & CommandBehavior.SchemaOnly) == 0)
                    {
                        // No binding in SchemaOnly mode
                        var msg = _connector.ReadSingleMessage(DataRowLoadingMode.NonSequential);
                        Contract.Assert(msg is BindCompleteMessage);
                    }
                }
                else
                {
                    IBackendMessage msg;
                    do
                    {
                        msg = _connector.ReadSingleMessage();
                    } while (!ProcessMessageForUnprepared(msg, behavior));
                }

                var reader = new NpgsqlDataReader(this, behavior, _queries);
                reader.Init();
                _connector.CurrentReader = reader;
                return reader;
            }
            catch
            {
                State = CommandState.Idle;
                throw;
            }
        }