본문 바로가기

DB

CURSOR 커서

Altibase DB(ver 4.x)에서 사용

 

커서에서 사용하는 변수 설정

ex)

EXEC SQL BEGIN DECLARE SECTION;

int a;

char ch1[30];

....

EXEC SQL END DECLARE SECTION;

 

커서 사용 5단계 순서

 

//-- 쿼리문 정의 --//

EXEC SQL PREPARE statment FROM var;

변수 var SQL문이 저장되어 있어야 함..

ex)

char SqlCmd[100];

memset(SqlCmd,0x00,sizeof(SqlCmd));

sprintf(SqlCmd, "SELECT user_no, user_name, user_area FROM list");

EXEC SQL PREPARE ST_1 FROM :SqlCmd;

 

 

//-- 커서 선언--//

EXCL SQL DECLARE cursor_name CURSOR FOR statment;

cursor_name = 커서에 사용할 이름

statment = PREPARE 단계에서 정의한 statment 똑같이 써준다

ex)

EXEC SQL DECLARE CUR_1 CURSOR FOR ST_1;

 

//-- 커서 오픈--//

EXEC SQL OPEN cursor_name;

앞 단계에서 정의한 커서를 사용하기 위해 오픈.

ex)

EXEC SQL OPEN CUR_1;

 

//-- 커서 실행--//

EXEC SQL FETCH cursor_name ONTO host_variables;

실제 커서를 사용하여 쿼리문 실행 단계

ex)

EXEC SQL FETCH cursor_name INTO :var1, :var2, :var3;

var 1, var2, var3 은 쿼리문에서 조회해서 가져올 데이터와 1:1 매핑된다.

변수는 이전에 미리 선언되어 있어야 함.

(쿼리문 데이터 크기와 변수의 데이터 타입 크기에 유념)

 

//-- 커서 닫기--//

EXEC SQL CLOSE cursor_name;

커서를 닫지 않고 다른 커서를 사용하게 되면 오류 발생함..

ex)

EXEC SQL CLOSE CUR_1;

 

 

 

--ERROR 확인시 코드상에 sqlca.sqlcode 의 값을 보고 판단할 수 있음.

ex)

if(sqlca.sqlcode!=SQL_SUCCESS)

{

           break;

}

 

'DB' 카테고리의 다른 글

DB SQL single quote(작은따옴표) insert  (0) 2014.05.02
ALTIBASE 내장 함수  (0) 2012.07.20
MySQL – 1  (0) 2011.04.15
DB 엔진 종류(MyISAM, InnoDB)  (1) 2011.03.30
JDBC와 ODBC의 차이점  (0) 2011.03.30