9 #include <moira_site.h>
10 EXEC SQL INCLUDE sqlca;
28 struct entry *e, *get_next_entry();
30 char buf[BUFSIZ], *file = NULL, *p, *p1, *db="moira";
33 whoami = strrchr(argv[0], '/');
39 setvbuf(stdout, NULL, _IOLBF, BUFSIZ);
40 setvbuf(stderr, NULL, _IOLBF, BUFSIZ);
42 for (i = 1; i < argc; i++) {
43 if (!strcmp(argv[i], "-w"))
45 else if (!strcmp(argv[i], "-D"))
46 setenv("ING_SET", "set printqry");
47 else if (!strcmp(argv[i], "-d"))
49 else if (file != NULL)
50 fprintf(stderr, "Usage: %s [-w] [-D] [-n] inputfile\n", whoami);
55 in = fopen(file, "r");
57 fprintf(stderr, "Unable to open %s for input\n", file);
61 EXEC SQL CONNECT :db IDENTIFIED BY :db;
62 if (sqlca.sqlcode != 0) {
63 com_err(whoami, 0, "ingres error %d", sqlca.sqlcode);
67 while (e = get_next_entry(in)) {
72 for (p1 = e->login; *p1; p1++)
74 for (; p < &(e->line[10]); p++)
76 fputs(e->line, stdout);
90 struct entry *get_next_entry(in)
93 static struct entry e;
94 static char buf[BUFSIZ];
96 if (fgets(buf, sizeof(buf), in) == NULL)
97 return((struct entry *)NULL);
100 strncpy(e.id, &buf[0], 9);
110 EXEC SQL BEGIN DECLARE SECTION;
112 EXEC SQL VAR login is STRING(9);
113 EXEC SQL END DECLARE SECTION;
117 EXEC SQL SELECT login INTO :login FROM users WHERE clearid = :id;
118 if (sqlca.sqlcode != 0) {
119 fprintf(stderr, "Error %d on %s\n", sqlca.sqlcode, e->line);
122 strncpy(e->login, login, 8);
125 printf("Got username %s\n", login);