다음을 통해 공유


방법: 결과 처리(ODBC)

결과를 처리하려면

  1. 결과 집합 정보를 검색합니다.

  2. 바인딩된 열을 사용하는 경우 바인딩할 각 열에 대해 SQLBindCol을 호출하여 프로그램 버퍼를 열에 바인딩합니다.

  3. 결과 집합의 각 행에 대해 다음을 수행합니다.

    • SQLFetch를 호출하여 다음 행을 가져옵니다.

    • 바인딩된 열을 사용하는 경우 이제 바인딩된 열 버퍼에서 사용할 수 있는 데이터를 사용합니다.

    • 바인딩되지 않은 열을 사용하는 경우 SQLGetData를 한 번 이상 호출하여 바인딩된 마지막 열 다음의 바인딩되지 않은 열 데이터를 가져옵니다. SQLGetData는 번호가 가장 작은 열부터 차례로 호출해야 합니다.

    • SQLGetData를 여러 번 호출하여 텍스트나 이미지 열에서 데이터를 가져옵니다.

  4. SQLFetch에서 SQL_NO_DATA를 반환하여 결과 집합의 끝을 알리면 SQLMoreResults를 호출하여 다른 결과 집합을 사용할 수 있는지 여부를 확인합니다.

    • 다른 결과 집합이 있으면 SQL_SUCCESS가 반환됩니다.

    • 다른 결과 집합이 없으면 SQL_NO_DATA가 반환됩니다.

    • SQL_SUCCESS_WITH_INFO 또는 SQL_ERROR가 반환되면 SQLGetDiagRec를 호출하여 사용할 수 있는 PRINT 또는 RAISERROR 문 출력이 있는지 확인합니다.

      바인딩된 문 매개 변수가 출력 매개 변수 또는 저장 프로시저의 반환 값으로 사용될 경우 바인딩된 매개 변수 버퍼에서 현재 사용할 수 있는 데이터를 사용합니다. 또한 바인딩된 매개 변수를 사용하면 SQLExecute 또는 SQLExecDirect를 호출할 때마다 SQL 문이 S번 실행됩니다. 여기서 S는 바인딩된 매개 변수 배열에 포함된 요소 수입니다. 이는 S개의 결과 집합을 처리해야 함을 의미하며, 각 결과 집합은 SQL 문을 한 번 실행했을 때 일반적으로 반환되는 모든 결과 집합, 출력 매개 변수 및 반환 코드 전체로 구성됩니다.

    [!참고]

    결과 집합에 계산 행이 포함된 경우 각 계산 행은 별도의 결과 집합으로 사용할 수 있습니다. 이러한 계산 결과 집합은 일반 행 내에 섞여 일반 행을 여러 개의 결과 집합으로 나눕니다.

  5. 필요에 따라 SQL_UNBIND와 함께 SQLFreeStmt를 호출하여 바인딩된 열 버퍼를 해제합니다.

  6. 다른 결과 집합이 있으면 1단계부터 반복합니다.

[!참고]

SQLFetch에서 SQL_NO_DATA를 반환하기 전에 결과 집합 처리를 취소하려면 SQLCloseCursor를 호출합니다.

참고 항목

관련 자료