From: | "Sergey E(dot) Volkov" <sve(at)raiden(dot)bancorp(dot)ru> |
---|---|
To: | pgsql-general(at)postgresql(dot)org(dot)pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Passing cursor between functions in embedded SQL |
Date: | 2001-06-19 13:01:40 |
Message-ID: | 9gnik9$2g97$1@news.tht.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Hi Alla,
Short answer - you can't.
Cursor ( cursors' name ) in esql ALWAYS has a FILE scope
( correct me - global scope in ecpg ) so you can to use it anywhere ( in the
file where it was defined ) without passing ones as parameter.
However if you want to pass cursor as parameter I recommend you to use
postgresql's c++ library or
c library. It's best way to make a flexible application.
(
For example in Informix's esqlc I can to define cursor as follows:
***
exec sql begin declare section
char *c1 = "my_first_cursor",
*c2 = "my_second_corsor";
exec sql end declare section
exec sql declare :c1 cursor for ...;
exec sql declare :c2 cursor for ...;
status = process_result_set(c1);
status = process_result_set(c2);
***
ecpg however doesn't support this syntax ...
)
"Alla" <alla(at)sergey(dot)com> ???????/???????? ? ???????? ?????????:
news:9275d56e(dot)0106181034(dot)51a22104(at)posting(dot)google(dot)com(dot)(dot)(dot)
> Did anybody try to do something like this?
>
> int
> open_cursor(...)
> {
> EXEC SQL DECLARE cur CURSOR FOR ...
>
> EXEC SQL OPEN cur;
>
> return cur1; /* how can I do that???? */
> }
>
> int
> fetch_cursor(... cur)
> {
> EXEC SQL FETCH cur;
>
> return some data;
> }
>
> That's how it's going to look in the calling program:
>
> cur := open_cursor;
>
> while (not found)
> {
> fetch_cursor(cur);
> do some processing with the data
> }
>
>
> My point is I don't want to declare huge arrays or linked lists and
> keep all the fetched data in the memory. I want to fetch a row,
> process it and move on to the next one.
>
> May be there is another approach to do this? Please help
>
> Thanks
>
> Alla Gribov
From | Date | Subject | |
---|---|---|---|
Next Message | Roberto Mello | 2001-06-19 13:49:18 | Re: About primary keys. |
Previous Message | David BOURIAUD | 2001-06-19 12:50:22 | Re: About primary keys. |