Pro*c DB 접속, 접속 해제



Pro*c?



오라클을 접근 및 제어를 위한 라이브러리 이다.

*.pc 파일로 만들어 오라클에서 제공하는 선행 컴파일러를 실행하면 .c로 변환시켜 주며

이것을 gcc로 컴파일 하여 실행 파일인 오브젝트를 생성하여 오라클 제어 프로그램을 만들 수 있다.


DB 접속 방법


이제 DB 접속 하는 방법과 예제를 살펴 보면서 Pro*c 사용 방법을 익히도록 하겠다.

 EXEC SQL CONNECT :userId IDENTIFIED BY :userPw;


위와 같은 명령어를 사용해 DB에 접속 할 수 있다.

이후 DML ( SELECT, UPDATE... 등) 실행이 가능하다. 


아래 접속 예제입니다.



#include <stdio.h>

EXEC SQL include sqlca.h;


#define SQL_CODE sqlca.sqlcode

#define SQL_NOT_FOUND 1403

#define SQL_SUCCESS 0


typedef enum

{

    false,

    true

}Boolean;    //성공,실패



Boolean ConnectDB()

{

    EXEC SQL BEGIN DECLARE SECTION;

       VARCHAR         userId[50];

       VARCHAR         userPw[50];

    EXEC SQL END DECLARE SECTION;


    strcpy(userId.arr,"identify");

    userId.len = strlen(userId.arr);

    strcpy(userPw.arr,"password");

    userId.len = strlen(userPw.arr);


    EXEC SQL CONNECT :userId IDENTIFIED BY :userPw;


    if (SQL_CODE != SQL_SUCCESS)

    {

        return false;

    }

    return true;

}





DB 접속 해제


이제 DB 접속 해지 하는 방법은 아래와 같습니다.

 EXEC SQL COMMIT WORK RELEASE;


프로그램 종료 전에는 항상 DB접속을 해제 시켜 주도록 합시다.


아래 접속 예제입니다.


#include <stdio.h>

EXEC SQL include sqlca.h;


#define SQL_CODE sqlca.sqlcode

#define SQL_NOT_FOUND 1403

#define SQL_SUCCESS 0


typedef enum

{

    false,

    true

}Boolean;    //성공,실패



Boolean ConnectDB()

{

    EXEC SQL BEGIN DECLARE SECTION;

       VARCHAR         userId[50];

       VARCHAR         userPw[50];

    EXEC SQL END DECLARE SECTION;


    strcpy(userId.arr,"identify");

    userId.len = strlen(userId.arr);

    strcpy(userPw.arr,"password");

    userId.len = strlen(userPw.arr);


    EXEC SQL CONNECT :userId IDENTIFIED BY :userPw;


    if (SQL_CODE != SQL_SUCCESS)

    {

        return false;

    }

    return true;

}


Boolean CloseDB()

{

     EXEC SQL COMMIT WORK RELEASE;

}


void main(void)

{

     ConnectDB();

     CloseDB();

}


반응형

+ Recent posts