COBOL에서의 처리
(Embedded SQL in COBOL)


  1. COBOL Source

      /* SQLCA 정의 */
      WORKING-STORAGE SECTION.                
      EXEC SQL                            
         INCLUDE SQLCA                    
      END-EXEC.                           
      /* 커서 정의 */
      EXEC SQL                                
         DECLARE C1 CURSOR FOR                
         SELECT uname                         
                FROM qgpl/userdb              
                WHERE uname LIKE :str2        
      END-EXEC.                               
      /* 커서 실행 */
      EXEC SQL                                
         OPEN C1                              
      END-EXEC.                               
      PERFORM FETCH-RTN THRU FETCH-EXIT UNTIL SQLCODE NOT EQUAL TO ZERO.
      /* 결과를 한 행씩 FETCH */
      FETCH-RTN.
         EXEC SQL                            
            WHENEVER NOT FOUND GOTO END-RTN  
            FETCH C1 INTO :namek             
         END-EXEC.                           
      FETCH-EXIT. EXIT.
      /* 커서 닫기 */
      END-RTN.
         EXEC SQL                                
            CLOSE C1                             
         END-EXEC.                               

       소문자 부분은 사용 환경에 따라 수정해야 할 부분 입니다

  2. 주요 부분 설명
					
      1) INCLUDE SQLCA
            SQL 통신 영역을 정의 합니다

      2) WHERE uname LIKE :str2        
            LIKE 비교를 위한 호스트 변수는 단독 선언되어야 한다
            하위레벨이 선언된 레코드 형식이면 컴파일 오류 발생

          V5R1 이후는 개선된 것으로 아는데 검증은 못해 보았음

      3) PERFORM FETCH-RTN THRU FETCH-EXIT UNTIL SQLCODE NOT EQUAL TO ZERO.
            선택된 결과행을 EOF 일 때 까지 한행(Record)씩 추출

  3. 참  조

      1) 프로그램 소스를 다운받아 소문자 부분 수정후 사용하세요 [Source Down]

      2) SEU 사용시 소스 타입은 SQLCBL 로 하면 됩니다

      3) 컴파일 명령은 CRTSQLCBL(Create SQL Cobol) 입니다.

      4) 참고자료 SC41-3611-00  DB2/400 SQL 프로그래밍