Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cursor variables [CORE1044] #1461

Open
firebird-automations opened this issue Dec 6, 2006 · 1 comment
Open

Cursor variables [CORE1044] #1461

firebird-automations opened this issue Dec 6, 2006 · 1 comment

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: Alexander Tyutik (tut)

Votes: 2

It would be nice to have cursor variables and assign them diffirent cursors. For example

EXECUTE BLOCK (
START_DATE TIMESTAMP,
END_DATE TIMESTAMP)
RETURNS (
ID INTEGER,
NAME VARCHAR(100))
AS
DECLARE CUR CURSOR (INTEGER, VARCHAR(100));
BEGIN
IF (START_DATE IS NULL AND END_DATE IS NULL)
CUR = CURSOR FOR SELECT ID, NAME FROM MY_TABLE;
ELSE IF (START_DATE IS NOT NULL AND END_DATE IS NULL)
CUR = CURSOR FOR SELECT ID, NAME FROM MY_TABLE WHERE CREATION_DATE >= :START_DATE;
ELSE IF (START_DATE IS NULL AND END_DATE IS NOT NULL)
CUR = CURSOR FOR SELECT ID, NAME FROM MY_TABLE WHERE CREATION_DATE <= :END_DATE;
ELSE IF (START_DATE IS NOT NULL AND END_DATE IS NOT NULL)
CUR = CURSOR FOR SELECT ID, NAME FROM MY_TABLE WHERE CREATION_DATE BETWEEN :START_DATE AND :END_DATE;

FOR FETCH FROM CUR INTO :ID, :NAME DO
BEGIN
...
SUSPEND;
END

--OR

OPEN CUR;
WHILE (1=1) DO
BEGIN
FETCH CUR INTO :ID, :NAME;
IF(0 = ROW_COUNT)
BREAK;
...
END
CLOSE CUR;

END

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

Workflow: jira [ 11378 ] => Firebird [ 15295 ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant