@@ -45,6 +45,7 @@ exec sql begin declare section;
4545 } ind[AMOUNT];
4646char command[128];
4747char *connection="pm";
48+ int how_many;
4849exec sql end declare section;
4950exec sql var name is string(AMOUNT);
5051char msg[128];
@@ -107,7 +108,7 @@ exec sql end declare section;
107108 exec sql select * into :name, :amount, :letter from "Test";
108109
109110printf("Database: mm\n");
110- for (i=0, j=sqlca.sqlerrd[2]; i<j; i++)
111+ for (i=0,how_many= j=sqlca.sqlerrd[2]; i<j; i++)
111112{
112113 exec sql begin declare section;
113114 char n[8], l = letter[i][0];
@@ -125,6 +126,31 @@ exec sql end declare section;
125126strcpy(msg, "commit");
126127exec sql at pm commit;
127128
129+ sprintf (command, "select * from \"Test\"");
130+
131+ exec sql prepare F from :command;
132+ exec sql declare CUR cursor for F;
133+
134+ strcpy(msg, "open");
135+ exec sql open CUR;
136+
137+ strcpy(msg, "fetch");
138+ exec sql fetch :how_many in CUR into :name, :amount, :letter;
139+
140+ printf("Database: mm\n");
141+ for (i=0, j=sqlca.sqlerrd[2]; i<j; i++)
142+ {
143+ exec sql begin declare section;
144+ char n[8], l = letter[i][0];
145+ int a = amount[i];
146+ exec sql end declare section;
147+
148+ strncpy(n, name[i], 8);
149+ printf("name[%d]=%8.8s\tamount[%d]=%d\tletter[%d]=%c\n", i, n, i, a, i, l);
150+ }
151+
152+ exec sql close CUR;
153+
128154 strcpy(msg, "select");
129155 exec sql at :connection select name, amount, letter into :name, :amount, :letter from "Test";
130156