Re: DECLARE CURSOR
От | Haris Peco |
---|---|
Тема | Re: DECLARE CURSOR |
Дата | |
Msg-id | 200211181431.34259.snpe@snpe.co.yu обсуждение исходный текст |
Ответ на | Re: DECLARE CURSOR ("Matthew V." < <deusmech@yahoo.com>>) |
Список | pgsql-general |
On Monday 18 November 2002 02:27 am, \"Matthew V.\ wrote: > On Sun, 17 Nov 2002 06:06:05 -0600, snpe wrote: > > On Sunday 17 November 2002 05:46 am, Frank Miles wrote: > >> On Sat, 16 Nov 2002, snpe wrote: > >> > On Saturday 16 November 2002 09:29 pm, Frank Miles wrote: > >> > > On Fri, 15 Nov 2002, snpe wrote: > >> > > > Hello, > >> > > > When I call DECLARE CURSOR out of transaction command success, > >> > > > but cursor is not created > >> > > > Reference manual say that this get error : > >> > > > ERROR: DECLARE CURSOR may only be used in begin/end transaction > >> > > > blocks I don't find this text in pgsql source code What is > >> > > > problem ? > >> > > > >> > > According to the documentation for DECLARE CURSOR (v.7.2.x): > >> > > > >> > > "Cursors are only available in transactions. Use to BEGIN, COMMIT > >> > > and > >> > > ROLLBACK to define a transaction block." > >> > > > >> > > This seems consistent with your error message. Please try wrapping > >> > > your DECLARE inside a transaction using BEGIN,... > >> > > >> > I understand it. > >> > I don't understand why 'DECLARE CURSOR' success out of a transaction > >> > - I expect error > >> > >> What version are you using? At least with 7.2.x, there is an immediate > >> error at the DECLARE statement. Perhaps I am misunderstanding your > >> question? > > > > 7.3b5 > > maybe, it is prepare for cursor out of a transaction (I hope) > > I'm getting a little confused, here, reading this. I don't have a BEGIN, > COMMIT, or ROLLBACK in sight in my ESQL application, but my cursor works > just fine. Under which circumstances are the BEGIN, COMMIT, and ROLLBACK > required? Is that something specific to the C interface? You don't use cursor, probably. For PostgreSQL cursor is explicit with DECLARE CURSOR in sql command It is like : BEGIN;; .. DECLARE c1 CURSOR FOR SELECT ...; ... FETCH 1 FROM c1 ... COMMIT; regards Haris Peco
В списке pgsql-general по дате отправления: