]> granicus.if.org Git - postgresql/blob - src/interfaces/ecpg/test/sql/fetch.pgc
32ca8e413032e5a8c5a154a9712da5678e722f6a
[postgresql] / src / interfaces / ecpg / test / sql / fetch.pgc
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4
5 EXEC SQL INCLUDE ../regression;
6
7 int main(int argc, char* argv[]) {
8   EXEC SQL BEGIN DECLARE SECTION;
9     char str[25];
10     int i, count=1; 
11   EXEC SQL END DECLARE SECTION;
12
13   ECPGdebug(1, stderr);
14   EXEC SQL CONNECT TO REGRESSDB1;
15
16   EXEC SQL WHENEVER SQLWARNING SQLPRINT;
17   EXEC SQL WHENEVER SQLERROR SQLPRINT;
18
19   EXEC SQL CREATE TABLE My_Table ( Item1 int, Item2 text );
20
21   EXEC SQL INSERT INTO My_Table VALUES ( 1, 'text1');
22   EXEC SQL INSERT INTO My_Table VALUES ( 2, 'text2');
23   EXEC SQL INSERT INTO My_Table VALUES ( 3, 'text3');
24   EXEC SQL INSERT INTO My_Table VALUES ( 4, 'text4');
25
26   EXEC SQL DECLARE C CURSOR FOR SELECT * FROM My_Table;
27
28   EXEC SQL OPEN C;
29
30   EXEC SQL WHENEVER NOT FOUND DO BREAK;
31   while (1) {
32         EXEC SQL FETCH 1 IN C INTO :i, :str;
33         printf("%d: %s\n", i, str);
34   }
35
36   EXEC SQL WHENEVER NOT FOUND CONTINUE;
37   EXEC SQL MOVE BACKWARD 2 IN C;
38
39   EXEC SQL FETCH :count IN C INTO :i, :str;
40   printf("%d: %s\n", i, str);
41
42   EXEC SQL DECLARE D CURSOR FOR SELECT * FROM My_Table WHERE Item1 = $1;
43
44   EXEC SQL OPEN D using 1;
45
46   EXEC SQL WHENEVER NOT FOUND DO BREAK;
47   while (1) {
48         EXEC SQL FETCH 1 IN D INTO :i, :str;
49         printf("%d: %s\n", i, str);
50   }
51   EXEC SQL CLOSE D;
52
53   EXEC SQL DROP TABLE My_Table;
54
55   EXEC SQL DISCONNECT ALL;
56
57   return 0;
58 }