int main()
{
EXEC SQL BEGIN DECLARE SECTION;
char user[30] = "scott", pass[30] = "tiger";
char instanz[30] = "linx";
int pers_id = 47080;
char adr[40];
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT :user IDENTIFIED BY :pass
USING :instanz;
if (check_db("CONNECT"))
return -1;
printf("\nConnected to ORACLE as user: %s\n", user);
EXEC SQL PREPARE stmt_mail FROM
SELECT adresse, pers_id
FROM mail_addr
WHERE pers_id = :a;
if (check_db("PREPARE stmt_mail"))
return -1;
EXEC SQL DECLARE crs_mail CURSOR FOR stmt_mail;
if (check_db("PREPARE stmt_mail"))
return -1;
EXEC SQL OPEN crs_mail USING :pers_id;
EXEC SQL WHENEVER NOT FOUND DO break;
for (;;) {
EXEC SQL FETCH crs_mail INTO :adr, :pers_id;
printf ("%s %d\n", adr, pers_id);
}
EXEC SQL CLOSE crs_mail;
EXEC SQL COMMIT RELEASE;
return 0;
}
int check_db(const char *s)
{
char err_msg[128];
size_t buf_len, msg_len;
int dberrno = sqlca.sqlcode;
if (dberrno != 0) {
if (dberrno == SQLNOTFOUND) {
fprintf(stderr, "%s: No data found\n",s);
} else {
fprintf(stderr,"Error in %s at %d; error=%d\n",
s,sqlca.sqlerrd[4],sqlca.sqlcode);