[ create a new paste ] login | about

Link: http://codepad.org/9IugFtgw    [ raw code | fork ]

C, pasted on Jun 30:
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <sqlca.h>      /* SQL Communications Area */

#include "oracle_interface.h"

#define     UNAME_LEN      20   /* Varchar limits */
#define     PWD_LEN        40
#define     DBTNS_LEN      20   /* Varchar limits */

EXEC SQL BEGIN DECLARE SECTION;
    VARCHAR username[UNAME_LEN];  /* SQL vars for        */
    VARCHAR password[PWD_LEN];    /* username and passwd */
    VARCHAR dbtns[DBTNS_LEN];
    VARCHAR host_cd[25];
EXEC SQL END DECLARE SECTION;


void sql_error();


void main(void){

    strncpy((char *) username.arr, "riscox", UNAME_LEN);
    username.len = strlen((char *) username.arr);

    strncpy((char *) password.arr, "riscox", PWD_LEN);
    password.len = strlen((char *) password.arr);

    strncpy((char *) dbtns.arr, "mcoracle", DBTNS_LEN);
    dbtns.len = strlen((char *) dbtns.arr);

    EXEC SQL WHENEVER SQLERROR DO sql_error("ORACLE error under function db_connect in oracle_interface.c\n");

    EXEC SQL CONNECT :username IDENTIFIED BY :password USING :dbtns;
    EXEC SQL WHENEVER SQLERROR DO sql_error ( "ERROR : Oracle under function subscribe in oracle_interface.c");

    EXEC SQL DECLARE s_cursor CURSOR FOR
      SELECT cd_negocio
      FROM cad_atv_cotacoes
      WHERE NVL(in_enfoque, 0) = 0;

    EXEC SQL OPEN s_cursor;

    EXEC SQL WHENEVER NOT FOUND DO break;
    while(1){
        EXEC SQL FETCH s_cursor INTO :host_cd;

        printf("Host var, cdnegocio = %s\n", host_cd);


    }// while(1)    

    EXEC SQL CLOSE s_cursor;






    EXEC SQL COMMIT WORK RELEASE;


}

void sql_error(msg)
char *msg;
{
    char err_msg[128];
    int buf_len, msg_len;

    EXEC SQL WHENEVER SQLERROR CONTINUE;
    printf("\n%s\n", msg);
    buf_len = sizeof (err_msg);
    sqlglm(err_msg, &buf_len, &msg_len);
    if (msg_len > buf_len)
    msg_len = buf_len;
    printf("%.*s\n", msg_len, err_msg);
    EXEC SQL ROLLBACK RELEASE;
    exit(1);
}


Create a new paste based on this one


Comments: