1 /* Processed by ecpg (regression mode) */
2 /* These include files are added by the preprocessor */
3 #include <ecpglib.h>
4 #include <ecpgerrno.h>
5 #include <sqlca.h>
6 /* End of automatic include section */
7 #define ECPGdebug(X,Y) ECPGdebug((X)+100,(Y))
8
9 #line 1 "autoprep.pgc"
10 #include <stdio.h>
11 #include <stdlib.h>
12 #include <string.h>
13
14 /* test automatic prepare for all statements */
15
16 #line 1 "regression.h"
17
18
19
20
21
22
23 #line 6 "autoprep.pgc"
24
25
test(void)26 static void test(void) {
27 /* exec sql begin declare section */
28
29
30
31
32 #line 10 "autoprep.pgc"
33 int item [ 4 ] , ind [ 4 ] , i = 1 ;
34
35 #line 11 "autoprep.pgc"
36 int item1 , ind1 ;
37
38 #line 12 "autoprep.pgc"
39 char sqlstr [ 64 ] = "SELECT item2 FROM T ORDER BY item2 NULLS LAST" ;
40 /* exec sql end declare section */
41 #line 13 "autoprep.pgc"
42
43
44 ECPGdebug(1, stderr);
45 { ECPGconnect(__LINE__, 0, "ecpg1_regression" , NULL, NULL , NULL, 0); }
46 #line 16 "autoprep.pgc"
47
48
49 /* exec sql whenever sql_warning sqlprint ; */
50 #line 18 "autoprep.pgc"
51
52 /* exec sql whenever sqlerror sqlprint ; */
53 #line 19 "autoprep.pgc"
54
55
56 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "create table T ( Item1 int , Item2 int )", ECPGt_EOIT, ECPGt_EORT);
57 #line 21 "autoprep.pgc"
58
59 if (sqlca.sqlwarn[0] == 'W') sqlprint();
60 #line 21 "autoprep.pgc"
61
62 if (sqlca.sqlcode < 0) sqlprint();}
63 #line 21 "autoprep.pgc"
64
65
66 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_prepnormal, "insert into T values ( 1 , null )", ECPGt_EOIT, ECPGt_EORT);
67 #line 23 "autoprep.pgc"
68
69 if (sqlca.sqlwarn[0] == 'W') sqlprint();
70 #line 23 "autoprep.pgc"
71
72 if (sqlca.sqlcode < 0) sqlprint();}
73 #line 23 "autoprep.pgc"
74
75 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_prepnormal, "insert into T values ( 1 , $1 )",
76 ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
77 ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
78 #line 24 "autoprep.pgc"
79
80 if (sqlca.sqlwarn[0] == 'W') sqlprint();
81 #line 24 "autoprep.pgc"
82
83 if (sqlca.sqlcode < 0) sqlprint();}
84 #line 24 "autoprep.pgc"
85
86 i++;
87 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_prepnormal, "insert into T values ( 1 , $1 )",
88 ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
89 ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
90 #line 26 "autoprep.pgc"
91
92 if (sqlca.sqlwarn[0] == 'W') sqlprint();
93 #line 26 "autoprep.pgc"
94
95 if (sqlca.sqlcode < 0) sqlprint();}
96 #line 26 "autoprep.pgc"
97
98 { ECPGprepare(__LINE__, NULL, 0, "i", " insert into T values ( 1 , 2 ) ");
99 #line 27 "autoprep.pgc"
100
101 if (sqlca.sqlwarn[0] == 'W') sqlprint();
102 #line 27 "autoprep.pgc"
103
104 if (sqlca.sqlcode < 0) sqlprint();}
105 #line 27 "autoprep.pgc"
106
107 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "i", ECPGt_EOIT, ECPGt_EORT);
108 #line 28 "autoprep.pgc"
109
110 if (sqlca.sqlwarn[0] == 'W') sqlprint();
111 #line 28 "autoprep.pgc"
112
113 if (sqlca.sqlcode < 0) sqlprint();}
114 #line 28 "autoprep.pgc"
115
116
117 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_prepnormal, "select Item2 from T order by Item2 nulls last", ECPGt_EOIT,
118 ECPGt_int,(item),(long)1,(long)4,sizeof(int),
119 ECPGt_int,(ind),(long)1,(long)4,sizeof(int), ECPGt_EORT);
120 #line 30 "autoprep.pgc"
121
122 if (sqlca.sqlwarn[0] == 'W') sqlprint();
123 #line 30 "autoprep.pgc"
124
125 if (sqlca.sqlcode < 0) sqlprint();}
126 #line 30 "autoprep.pgc"
127
128
129 for (i=0; i<4; i++)
130 printf("item[%d] = %d\n", i, ind[i] ? -1 : item[i]);
131
132 /* declare C cursor for select Item1 from T */
133 #line 35 "autoprep.pgc"
134
135
136 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "declare C cursor for select Item1 from T", ECPGt_EOIT, ECPGt_EORT);
137 #line 37 "autoprep.pgc"
138
139 if (sqlca.sqlwarn[0] == 'W') sqlprint();
140 #line 37 "autoprep.pgc"
141
142 if (sqlca.sqlcode < 0) sqlprint();}
143 #line 37 "autoprep.pgc"
144
145
146 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "fetch 1 in C", ECPGt_EOIT,
147 ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
148 ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
149 #line 39 "autoprep.pgc"
150
151 if (sqlca.sqlwarn[0] == 'W') sqlprint();
152 #line 39 "autoprep.pgc"
153
154 if (sqlca.sqlcode < 0) sqlprint();}
155 #line 39 "autoprep.pgc"
156
157 printf("i = %d\n", i);
158
159 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "close C", ECPGt_EOIT, ECPGt_EORT);
160 #line 42 "autoprep.pgc"
161
162 if (sqlca.sqlwarn[0] == 'W') sqlprint();
163 #line 42 "autoprep.pgc"
164
165 if (sqlca.sqlcode < 0) sqlprint();}
166 #line 42 "autoprep.pgc"
167
168
169 { ECPGprepare(__LINE__, NULL, 0, "stmt1", sqlstr);
170 #line 44 "autoprep.pgc"
171
172 if (sqlca.sqlwarn[0] == 'W') sqlprint();
173 #line 44 "autoprep.pgc"
174
175 if (sqlca.sqlcode < 0) sqlprint();}
176 #line 44 "autoprep.pgc"
177
178
179 /* declare cur1 cursor for $1 */
180 #line 46 "autoprep.pgc"
181
182
183 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "declare cur1 cursor for $1",
184 ECPGt_char_variable,(ECPGprepared_statement(NULL, "stmt1", __LINE__)),(long)1,(long)1,(1)*sizeof(char),
185 ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
186 #line 48 "autoprep.pgc"
187
188 if (sqlca.sqlwarn[0] == 'W') sqlprint();
189 #line 48 "autoprep.pgc"
190
191 if (sqlca.sqlcode < 0) sqlprint();}
192 #line 48 "autoprep.pgc"
193
194
195 /* exec sql whenever not found break ; */
196 #line 50 "autoprep.pgc"
197
198
199 i = 0;
200 while (i < 100)
201 {
202 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "fetch cur1", ECPGt_EOIT,
203 ECPGt_int,&(item1),(long)1,(long)1,sizeof(int),
204 ECPGt_int,&(ind1),(long)1,(long)1,sizeof(int), ECPGt_EORT);
205 #line 55 "autoprep.pgc"
206
207 if (sqlca.sqlcode == ECPG_NOT_FOUND) break;
208 #line 55 "autoprep.pgc"
209
210 if (sqlca.sqlwarn[0] == 'W') sqlprint();
211 #line 55 "autoprep.pgc"
212
213 if (sqlca.sqlcode < 0) sqlprint();}
214 #line 55 "autoprep.pgc"
215
216 printf("item[%d] = %d\n", i, ind1 ? -1 : item1);
217 i++;
218 }
219
220 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "close cur1", ECPGt_EOIT, ECPGt_EORT);
221 #line 60 "autoprep.pgc"
222
223 if (sqlca.sqlwarn[0] == 'W') sqlprint();
224 #line 60 "autoprep.pgc"
225
226 if (sqlca.sqlcode < 0) sqlprint();}
227 #line 60 "autoprep.pgc"
228
229
230 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "drop table T", ECPGt_EOIT, ECPGt_EORT);
231 #line 62 "autoprep.pgc"
232
233 if (sqlca.sqlwarn[0] == 'W') sqlprint();
234 #line 62 "autoprep.pgc"
235
236 if (sqlca.sqlcode < 0) sqlprint();}
237 #line 62 "autoprep.pgc"
238
239
240 { ECPGdisconnect(__LINE__, "ALL");
241 #line 64 "autoprep.pgc"
242
243 if (sqlca.sqlwarn[0] == 'W') sqlprint();
244 #line 64 "autoprep.pgc"
245
246 if (sqlca.sqlcode < 0) sqlprint();}
247 #line 64 "autoprep.pgc"
248
249 }
250
main()251 int main() {
252 test();
253 test(); /* retry */
254
255 return 0;
256 }
257