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 |