저장소 할당

응용 프로그램에서 SQL 문 실행 전이나 후에 결과의 저장소를 할당할 수 있습니다. 응용 프로그램에서 먼저 SQL 문을 준비하거나 실행하는 경우 결과의 저장소를 할당하기 전에 결과 집합을 조회할 수 있습니다. 예를 들어 결과 집합을 알 수 없는 경우 응용 프로그램에서는 결과의 저장소를 할당하기 전에 열의 수를 검색해야 합니다.

데이터 열에 저장소를 연결하기 위해 응용 프로그램에서는 SQLBindCol을 호출하고 다음을 전달합니다.

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

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

    응용 프로그램에서는 이 버퍼를 할당해야 하며, 이 버퍼는 변환되는 형식의 데이터를 저장할 수 있을 만큼 커야 합니다.

  • 출력 버퍼의 길이

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

  • 사용 가능한 데이터의 바이트 수를 반환할 저장소 버퍼의 주소

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

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

    열 단위 바인딩을 지정하려면 Attribute를 SQL_ATTR_ROW_BIND_TYPE으로 설정하고 ValuePtr을 SQL_BIND_BY_COLUMN으로 설정한 상태로 SQLSetStmtAttr을 호출합니다. 모든 배열의 요소 수가 동일해야 합니다.

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

    행 단위 바인딩을 지정하려면 Attribute를 SQL_ATTR_ROW_BIND_TYPE으로 설정하고 ValuePtr을 결과 집합 열을 받는 변수가 저장되는 구조체의 크기로 설정한 상태로 SQLSetStmtAttr을 호출합니다.

또한 응용 프로그램에서는 SQL_ATTR_ROW_ARRAY_SIZE를 열 또는 행 배열의 요소 수로 설정하고 SQL_ATTR_ROW_STATUS_PTR 및 SQL_ATTR_ROWS_FETCHED_PTR을 설정합니다.

참고 항목

개념

결과 처리(ODBC)