Line data Source code
1 : #include <stdio.h>
2 :
3 : exec sql include sqlca;
4 : exec sql include ../regression;
5 :
6 0 : int main()
7 : {
8 : exec sql begin declare section;
9 0 : int intvar = 5;
10 0 : int nullind = -1;
11 : exec sql end declare section;
12 :
13 0 : ECPGdebug(1,stderr);
14 :
15 0 : exec sql connect to REGRESSDB1;
16 0 : exec sql set autocommit to off;
17 :
18 0 : exec sql create table indicator_test (
19 : "id" int primary key,
20 : "str" text NOT NULL,
21 : val int null);
22 0 : exec sql commit work;
23 :
24 0 : exec sql insert into indicator_test (id, str, val) values ( 1, 'Hello', 0);
25 :
26 : /* use indicator in insert */
27 0 : exec sql insert into indicator_test (id, str, val) values ( 2, 'Hi there', :intvar :nullind);
28 0 : nullind = 0;
29 0 : exec sql insert into indicator_test (id, str, val) values ( 3, 'Good evening', :intvar :nullind);
30 0 : exec sql commit work;
31 :
32 : /* use indicators to get information about selects */
33 0 : exec sql select val into :intvar from indicator_test where id = 1;
34 0 : exec sql select val into :intvar :nullind from indicator_test where id = 2;
35 0 : printf("intvar: %d, nullind: %d\n", intvar, nullind);
36 0 : exec sql select val into :intvar :nullind from indicator_test where id = 3;
37 0 : printf("intvar: %d, nullind: %d\n", intvar, nullind);
38 :
39 : /* use indicators for update */
40 0 : intvar = 5; nullind = -1;
41 0 : exec sql update indicator_test set val = :intvar :nullind where id = 1;
42 0 : exec sql select val into :intvar :nullind from indicator_test where id = 1;
43 0 : printf("intvar: %d, nullind: %d\n", intvar, nullind);
44 :
45 0 : exec sql drop table indicator_test;
46 0 : exec sql commit work;
47 :
48 0 : exec sql disconnect;
49 0 : return 0;
50 0 : }
|