WWW

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ WWW ] in KIDS
글 쓴 이(By): light (희망)
날 짜 (Date): 1999년 3월 20일 토요일 오후 10시 41분 17초
제 목(Title): [Q]E-SQL에서 변수 처리 문제 


 C에 E-SQL을 사용하여Oracle DB와 연동하는 프로그랩을 짜고 있는데요.
 
 EXEC SQL 문에서, WHERE 절에 attribute 이름도 변수 처리를 해서 select 를 해야
 하는데 이것저것 해봐도 제대로 되지 않는 것 같네요.
 제가 원하는 것은, 스키마와 value를 변수로 받아, 그런 value값을 가지는
 tuple의 count를 구하는 것입니다.
 다음과 같은 코드 부분입니다.
 
 
========= 여기부터
...
char sqlcmd[500];
int tmp ;
...
   /*  CHECK START*/
sprintf(sqlcmd,"SELECT count(*)  FROM Rtable WHERE %s=':tmp_value' \
                AND number=%d",tmp_schema,k);
   /*  CHECK END */
/* tmp_schema는 한 attribute schema를 받는 변수입니다
   tmp_value는 tmp_schema의 한 value이고,
. k는 정수변수 입니다. */
 
EXEC SQL PREPARE CURSOR_1 FROM :sqlcmd;
EXEC SQL DECLARE STMT_1 CURSOR FOR CURSOR_1;
EXEC SQL OPEN STMT_1;
EXEC SQL FETCH STMT_1 INTO :tmp;
 
========= 여기까지
 
  위와같이 해서 tmp를 출력해보면, 원하는 값은 1인데, 자꾸 5라는 값이 
  출력됩니다.
  위 CHECK 부분이 말썽인데요, 어떻게 처리해야 좋을까요?
  제가 원하는 것은, 스키마와 value를 변수로 받아, 그런 value값을 가지는
  tuple의 count를 구하는 것입니다.
 
 그럼 미리 감사드립니다.


 
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.