원인
ODBC 에서 SQLHSTMT 의 변수로 SELECT 를 사용한 뒤, 바로 다른 쿼리를 수행하려고 하는 경우 발생합니다.
해결방안
SELECT 시 암묵적으로 Cursor 가 생성되며 다른 쿼리를 사용 전, Cursor 를 닫아주어야 합니다.
SELECT 사용 뒤 사용된 Statement 변수의 커서를 닫아줍니다.
while( 1 ) { sRet = SQLFetch( sStmt ); if( sRet == SQL_NO_DATA ) { break; } printf("T1 :: %d, %d, %ld, %f, %f\n", sC1, sC2, sC3, sC4, sC5); } SQLCloseCursor( sStmt ); /* DROP */ sRet = SQLExecDirect( sStmt, (SQLCHAR*)"DROP TABLE T1", SQL_NTS );
'Database > Goldilocks' 카테고리의 다른 글
[GOLDILOCKS] PL/SQL DBMS_OUTPUT 옵션 사용하기 (0) | 2018.08.21 |
---|---|
[GOLDILOCKS] PL/SQL IF, CASE, FOR 사용하기 (0) | 2018.08.21 |
[GOLDILOCKS] PL/SQL 암시적, 명시적 커서 사용하기 (0) | 2018.08.20 |
[GOLDILOCKS] PL/SQL 의 데이터 타입 변수 선언하기 (0) | 2018.08.20 |
[GOLDILOCKS] Excel VBA 연동하기 (0) | 2018.07.24 |