mirror of
https://github.com/postgres/postgres.git
synced 2025-08-09 17:03:00 +03:00
59 lines
1.3 KiB
Plaintext
59 lines
1.3 KiB
Plaintext
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
EXEC SQL INCLUDE ../regression;
|
|
|
|
int main() {
|
|
EXEC SQL BEGIN DECLARE SECTION;
|
|
char str[25];
|
|
int i, count=1, loopcount;
|
|
EXEC SQL END DECLARE SECTION;
|
|
|
|
ECPGdebug(1, stderr);
|
|
EXEC SQL CONNECT TO REGRESSDB1;
|
|
|
|
EXEC SQL WHENEVER SQLWARNING SQLPRINT;
|
|
EXEC SQL WHENEVER SQLERROR STOP;
|
|
|
|
EXEC SQL CREATE TABLE My_Table ( Item1 int, Item2 text );
|
|
|
|
EXEC SQL INSERT INTO My_Table VALUES ( 1, 'text1');
|
|
EXEC SQL INSERT INTO My_Table VALUES ( 2, 'text2');
|
|
EXEC SQL INSERT INTO My_Table VALUES ( 3, 'text3');
|
|
EXEC SQL INSERT INTO My_Table VALUES ( 4, 'text4');
|
|
|
|
EXEC SQL DECLARE C CURSOR FOR SELECT * FROM My_Table;
|
|
|
|
EXEC SQL OPEN C;
|
|
|
|
EXEC SQL WHENEVER NOT FOUND DO BREAK;
|
|
for (loopcount = 0; loopcount < 100; loopcount++) {
|
|
EXEC SQL FETCH 1 IN C INTO :i, :str;
|
|
printf("%d: %s\n", i, str);
|
|
}
|
|
|
|
EXEC SQL WHENEVER NOT FOUND CONTINUE;
|
|
EXEC SQL MOVE BACKWARD 2 IN C;
|
|
|
|
EXEC SQL FETCH :count IN C INTO :i, :str;
|
|
printf("%d: %s\n", i, str);
|
|
|
|
EXEC SQL CLOSE C;
|
|
|
|
EXEC SQL DECLARE D CURSOR FOR SELECT * FROM My_Table WHERE Item1 = $1;
|
|
|
|
EXEC SQL OPEN D using 1;
|
|
|
|
EXEC SQL FETCH 1 IN D INTO :i, :str;
|
|
printf("%d: %s\n", i, str);
|
|
|
|
EXEC SQL CLOSE D;
|
|
|
|
EXEC SQL DROP TABLE My_Table;
|
|
|
|
EXEC SQL DISCONNECT ALL;
|
|
|
|
return 0;
|
|
}
|