다음을 통해 공유


스토리지 할당

애플리케이션에서 SQL 문 실행 전이나 후에 결과의 스토리지를 할당할 수 있습니다. 애플리케이션에서 먼저 SQL 문을 준비하거나 실행하는 경우 결과의 스토리지를 할당하기 전에 결과 집합을 조회할 수 있습니다. 예를 들어 결과 집합을 알 수 없는 경우 애플리케이션에서는 결과의 스토리지를 할당하기 전에 열의 수를 검색해야 합니다.

데이터 열에 대한 스토리지를 연결하기 위해 애플리케이션은 SQLBindCol을 호출하고 이를 전달합니다.

  • 데이터를 변환할 데이터 형식

  • 데이터에 대한 출력 버퍼의 주소

    애플리케이션에서는 이 버퍼를 할당해야 하며, 이 버퍼는 변환되는 형식의 데이터를 저장할 수 있을 만큼 커야 합니다.

  • 출력 버퍼의 길이

    반환된 데이터가 C에서 정수, 실수 또는 날짜 구조와 같이 고정 폭인 경우 이 값은 무시됩니다.

  • 사용 가능한 데이터의 바이트 수를 반환할 스토리지 버퍼의 주소

또한 애플리케이션에서는 결과 집합 행을 블록 단위로 인출할 수 있도록 결과 집합 열을 프로그램 변수 배열에 바인딩할 수도 있습니다. 배열 바인딩에는 다음과 같은 두 가지 유형이 있습니다.

  • 열 단위 바인딩은 각 열이 고유한 변수 배열에 바인딩되면 완료됩니다.

    열 단위 바인딩은 특성이 SQL_ATTR_ROW_BIND_TYPE 설정되고 ValuePtr이 SQL_BIND_BY_COLUMN 설정된 SQLSetStmtAttr을 호출하여 지정됩니다. 모든 배열의 요소 수가 동일해야 합니다.

  • 행 단위 바인딩은 SQL 문의 모든 매개 변수가 매개 변수의 개별 변수를 포함하는 구조체 배열에 하나의 단위로 바인딩되면 완료됩니다.

    행 단위 바인딩은 특성이 SQL_ATTR_ROW_BIND_TYPE 설정되고 ValuePtr이 결과 집합 열을 받을 변수를 보유하는 구조체의 크기로 설정된 SQLSetStmtAttr을 호출하여 지정됩니다.

또한 애플리케이션에서는 SQL_ATTR_ROW_ARRAY_SIZE를 열 또는 행 배열의 요소 수로 설정하고 SQL_ATTR_ROW_STATUS_PTR 및 SQL_ATTR_ROWS_FETCHED_PTR을 설정합니다.

참고 항목

결과 처리(ODBC)