| [ 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를 구하는 것입니다. 그럼 미리 감사드립니다. |