저장소 할당
응용 프로그램에서 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을 설정합니다.