다음을 통해 공유


SQLDescribeCol 및 SQLColAttribute

SQLDescribeColSQLColAttribute 는 결과 집합 메타데이터를 검색하는 데 사용됩니다. 이러한 두 함수의 차이점은 SQLDescribeCol항상 동일한 다섯 가지 정보(열 이름, 데이터 형식, 정밀도, 소수 자릿수 및 null 허용 여부)를 반환하는 반면 SQLColAttribute는 애플리케이션에서 요청한 단일 정보를 반환한다는 것입니다. 그러나 SQLColAttribute 는 열의 대/소문자 구분, 표시 크기, 호환성 및 검색 기능을 포함하여 훨씬 더 다양한 메타데이터 선택을 반환할 수 있습니다.

많은 애플리케이션, 특히 데이터만 표시하는 애플리케이션에는 SQLDescribeCol에서 반환된 메타데이터만 필요합니다. 이러한 애플리케이션의 경우 정보가 단일 호출로 반환되기 때문에 SQLColAttribute보다 SQLDescribeCol을 사용하는 것이 더 빠릅니다. 다른 애플리케이션, 특히 데이터를 업데이트하는 애플리케이션에는 SQLColAttribute에서 반환된 추가 메타데이터가 필요하므로 두 함수를 모두 사용합니다. 또한 SQLColAttribute 는 드라이버별 메타데이터를 지원합니다. 자세한 내용은 드라이버별 데이터 형식, 설명자 형식, 정보 유형, 진단 형식 및 특성을 참조 하세요.

애플리케이션은 문이 준비되거나 실행된 후 및 결과 집합에 대한 커서가 닫혀 있기 전에 언제든지 결과 집합 메타데이터를 검색할 수 있습니다. 문이 준비되고 실행되기 전에 결과 집합 메타데이터가 필요한 애플리케이션은 거의 없습니다. 가능하면 일부 데이터 원본이 준비된 문에 대한 메타데이터를 반환할 수 없고 드라이버에서 이 기능을 에뮬레이트하는 것이 느린 프로세스인 경우가 많기 때문에 애플리케이션은 문이 실행될 때까지 메타데이터를 검색하기 위해 기다려야 합니다. 예를 들어 드라이버는 SELECT 문의 WHERE 절을 WHERE 1 = 2로 대체하고 결과 문을 실행하여 0행 결과 집합을 생성할 수 있습니다.

메타데이터는 데이터 원본에서 검색하는 데 비용이 많이 드는 경우가 많습니다. 이 때문에 드라이버는 서버에서 검색한 메타데이터를 캐시하고 결과 집합에 대한 커서가 열려 있는 한 해당 메타데이터를 보관해야 합니다. 또한 애플리케이션은 반드시 필요한 메타데이터만 요청해야 합니다.