안녕하세요.게시판에 처음으로 글을 올립니다.
proc*c 에서 커서를 이용해서 만들고 있는데요.
func A()
{
. . .
EXEC SQL PREPARE my_cursor FROM :statement;
EXEC SQL DECLARE my_stmt CURSOR FOR my_cursor;
EXEC SQL OPEN my_stmt;
...
}
이런식을 쓰잔아요.
근데 저런 식으로 여러 함수에서 사용하거든요.
예를 들어 A라는 함수에도 사용하고 ,다음과 같이 B 라는 함수에사 A에서 쓰인 변수(?) 이름을 똑같이 my_cursor, my_stmt 다음과 같이 사용하였습니다.
func B()
{
...
EXEC SQL PREPARE my_cursor FROM :statement;
EXEC SQL DECLARE my_stmt CURSOR FOR my_cursor;
EXEC SQL OPEN my_stmt;
...
}
각기 다른 함수에서 선언을 했는데요.
redefine 되었다구 precompiler에서 에러가 나거든요.
다른 이름으로 바꿔서 사용하고 있지만, 뭔가 미심적어서요. 커서를 여러개 사용하면 메모리 문제가 생기지 않을까하구요. <-- 다른 함수들즉 name scope( {} )이 다른 곳에서 선언된 커서들이 왜 다른 함수들에까지 영향을 끼치는 지 궁금해서요. 원래 커서는 전역변수 처럼 사용되는 것인가요? (아님 제가 잘못쓴건가요..)
또, 여러개의 커서이름으로 사용해서 메모리엔 문제가 없는것인가요?
|