aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/test/test5.pgc
blob: 18e5b48971f65e7f82b0ccb5189431e00e8400dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <stdio.h>
#include <stdlib.h>

EXEC SQL typedef long mmInteger;
EXEC SQL typedef char mmChar;
EXEC SQL typedef short mmSmallInt;

EXEC SQL BEGIN DECLARE SECTION;
struct TBempl
   {
   mmInteger     idnum;
   mmChar        name[21];
   mmSmallInt    accs;
   };
EXEC SQL END DECLARE SECTION;

int main(void)
{
EXEC SQL BEGIN DECLARE SECTION;
struct TBempl empl;
EXEC SQL END DECLARE SECTION;
FILE *dbgs;

if ((dbgs = fopen("log", "w")) != NULL)
    ECPGdebug(1, dbgs);
		    
empl.idnum = 1;
EXEC SQL connect to mm;
if (sqlca.sqlcode)
   {
   printf("connect error = %ld\n", sqlca.sqlcode);
   exit(sqlca.sqlcode);
   }

EXEC SQL create table empl
   (
      idnum    integer,
      name     char(20),
      accs     smallint
   );
if (sqlca.sqlcode)
   {
   printf("select error = %ld\n", sqlca.sqlcode);
   exit(sqlca.sqlcode);
   }

EXEC SQL insert into empl values (1, 'first user', 20);
if (sqlca.sqlcode)
   {
   printf("select error = %ld\n", sqlca.sqlcode);
   exit(sqlca.sqlcode);
   }

EXEC SQL select name, accs 
         into :empl.name, :empl.accs
         from empl where idnum = :empl.idnum;
if (sqlca.sqlcode)
   {
   printf("select error = %ld\n", sqlca.sqlcode);
   exit(sqlca.sqlcode);
   }
printf("name=%s, accs=%d\n", empl.name, empl.accs);
EXEC SQL disconnect;
fclose(dbgs);
exit(0);
}