C언어
[proc/pc/esql/ec 강좌] 프로씨 이씨 SELECT 결과를 커서 Cursor와 FETCH를 이용해 반복처리 - $를 이용해 줄이기
xemaker
2017. 2. 9. 09:38
앞서 select 결과 1건 가져오는것과 비슷하지만 select 결과가 여러건 이면 cursor와 fetch next를 이용해서 처리했다.
ESQL/C 프로그램을 할때는 해당 구문에 EXEC SQL 을 써서 구분해준다.
대학시절 공부할때 프로그래머들은 귀찮고 긴것을 싫어한다고 배웠다.
그래서 인지 EXEC SQL 대신 $만 써도 ESQL/C 구문인지 나타낼 수 있다.
PHP도 $를 쓰는데..^^
앞의 소스를 $를 사용해 줄여보면 아래와 같다.
main(int argc, char *argv[]){
$char work1[100];
memset(work1,0x00,sizeof(work1));
$connect to "dbname";
$DECLARE test_cur SCROLL CURSOR FOR
SELECT a
FROM test;
$OPEN test_cur;
while(1){
$FETCH NEXT test_cur INTO :work1;
if(sqlca.sqlcode==100){
break;
}else if(sqlca.sqlcode!=0)
printf("error=[%d]\n",sqlca.sqlcode);
}
printf("work1=[%s]\n",work1;
}
$CLOSE test_cur;
$FREE test_cur;
}
ESQL/C 프로그램을 할때는 해당 구문에 EXEC SQL 을 써서 구분해준다.
대학시절 공부할때 프로그래머들은 귀찮고 긴것을 싫어한다고 배웠다.
그래서 인지 EXEC SQL 대신 $만 써도 ESQL/C 구문인지 나타낼 수 있다.
PHP도 $를 쓰는데..^^
앞의 소스를 $를 사용해 줄여보면 아래와 같다.
main(int argc, char *argv[]){
$char work1[100];
memset(work1,0x00,sizeof(work1));
$connect to "dbname";
$DECLARE test_cur SCROLL CURSOR FOR
SELECT a
FROM test;
$OPEN test_cur;
while(1){
$FETCH NEXT test_cur INTO :work1;
if(sqlca.sqlcode==100){
break;
}else if(sqlca.sqlcode!=0)
printf("error=[%d]\n",sqlca.sqlcode);
}
printf("work1=[%s]\n",work1;
}
$CLOSE test_cur;
$FREE test_cur;
}