문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

SQLDescribeParam

SQL 문의 매개 변수를 설명하기 위해 SQL Server Native Client ODBC 드라이버는 준비된 ODBC 문 핸들에서 SQLDescribeParam이 호출될 때 Transact-SQL SELECT 문을 작성하여 실행합니다. 결과 집합의 메타데이터에 따라 준비된 문의 매개 변수 특징이 결정됩니다. SQLDescribeParamSQLExecute 또는 SQLExecDirect에서 반환할 수 있는 오류 코드를 반환할 수 있습니다.

SQL Server 2012부터 데이터베이스 엔진의 기능이 향상되어 SQLDescribeParam을 통해 예상 결과에 대한 보다 정확한 설명을 얻을 수 있습니다. 이러한 보다 정확한 결과는 이전 버전의 SQL Server에서 SQLDescribeParam이 반환한 값과 다를 수 있습니다. 자세한 내용은 메타데이터 검색을 참조하십시오.

또한 SQL Server 2012에서 새로워진 ParameterSizePtr은 이제 ODBC 사양에 정의된 대로 해당 매개 변수 표식의 열 또는 식 크기(문자 수)에 대한 정의를 사용하여 정렬되는 값을 반환합니다. 이전 버전의 SQL ServerNative Client에서 ParameterSizePtr은 해당 형식의 SQL_DESC_OCTET_LENGTH에 해당하는 값이거나, 무시해야 하는 값(예: SQL_INTEGER)을 갖는 형식의 SQLBindParameter에 제공된 관련 없는 열 크기 값일 수 있었습니다.

드라이버는 다음과 같은 경우 SQLDescribeParam 호출을 지원하지 않습니다.

  • FROM 절이 포함된 Transact-SQL UPDATE 또는 DELETE 문에 대한 SQLExecDirect

  • HAVING 절에 매개 변수를 포함하거나 SUM 함수 결과와 비교되는 ODBC 또는 Transact-SQL 문의 경우

  • 매개 변수가 포함된 하위 쿼리를 사용하는 ODBC 또는 Transact-SQL 문의 경우

  • 정량화된 조건자 또는 비교 like의 두 식에 모두 매개 변수 표식이 포함된 ODBC SQL 문의 경우

  • 매개 변수 중 하나가 함수에 대한 매개 변수인 쿼리의 경우

  • Transact-SQL 명령에 주석(/* */)이 있는 경우

또한 Transact-SQL 문을 일괄 처리하는 경우 드라이버는 일괄 처리의 첫 번째 문 다음에 나오는 문의 매개 변수 표식에 대해 SQLDescribeParam 호출을 지원하지 않습니다.

준비된 저장 프로시저의 매개 변수를 설명할 때 SQLDescribeParam은 시스템 저장 프로시저 sp_sproc_columns를 사용하여 매개 변수 특징을 검색합니다. sp_sproc_columns는 현재 사용자 데이터베이스 내의 저장 프로시저 데이터를 보고할 수 있습니다. 정규화된 저장 프로시저 이름을 준비하면 SQLDescribeParam이 여러 데이터베이스에서 실행될 수 있습니다. 예를 들어 시스템 저장 프로시저 sp_who를 다음과 같이 준비하여 실행할 수 있습니다.

SQLPrepare(hstmt, "{call sp_who(?)}", SQL_NTS);

준비에 성공한 후 SQLDescribeParam을 실행하면 master 이외의 데이터베이스에 연결되어 있는 경우 빈 행 집합이 반환됩니다. 동일한 호출을 다음과 같이 준비하여 사용하면 현재 사용자 데이터베이스에 관계없이 SQLDescribeParam이 성공합니다.

SQLPrepare(hstmt, "{call master..sp_who(?)}", SQL_NTS);

큰 값 데이터 형식의 경우 DataTypePtr에서 반환되는 값은 SQL_VARCHAR, SQL_VARBINARY 또는 SQL_NVARCHAR입니다. 큰 값 데이터 형식 매개 변수의 크기를 “제한 없음”으로 표시하려는 경우 SQL Server Native Client ODBC 드라이버는 ParameterSizePtr을 0으로 설정합니다. 표준 varchar 매개 변수에 대해서는 실제 크기 값이 반환됩니다.

참고참고

매개 변수가 이미 SQL_VARCHAR, SQL_VARBINARY 또는 SQL_WVARCHAR 매개 변수의 최대 크기와 바인딩되어 있으면 "제한 없음"이 아니라 매개 변수의 바인딩된 크기가 반환됩니다.

"제한 없음" 크기 입력 매개 변수를 바인딩하려면 실행 시 데이터를 사용해야 합니다. "제한 없음" 크기 출력 매개 변수는 바인딩할 수 없습니다. SQLGetData가 결과 집합에 대해 수행하는 것처럼 출력 매개 변수에서 데이터를 스트리밍하기 위한 메서드가 없습니다.

출력 매개 변수의 경우 버퍼를 바인딩해야 하며, 값이 너무 크면 버퍼가 채워지고 SQL_SUCCESS_WITH_INFO 메시지가 "문자열 데이터의 오른쪽이 잘렸습니다."라는 경고와 함께 반환됩니다. 잘린 데이터는 삭제됩니다.

응용 프로그램은 SQLDescribeParam을 사용하여 준비된 문에 대한 테이블 반환 매개 변수 정보를 검색할 수 있습니다. 자세한 내용은 준비된 문의 테이블 반환 매개 변수 메타데이터를 참조하십시오.

일반적인 테이블 반환 매개 변수에 대한 자세한 내용은 테이블 반환 매개 변수(ODBC)를 참조하십시오.

날짜/시간 형식에 대해 반환되는 값은 다음과 같습니다.

DataTypePtr

ParameterSizePtr

DecimalDigitsPtr

datetime

SQL_TYPE_TIMESTAMP

23

3

smalldatetime

SQL_TYPE_TIMESTAMP

16

0

date

SQL_TYPE_DATE

10

0

time

SQL_SS_TIME2

8, 10..16

0..7

datetime2

SQL_TYPE_TIMESTAMP

19, 21..27

0..7

datetimeoffset

SQL_SS_TIMESTAMPOFFSET

26, 28..34

0..7

자세한 내용은 날짜/시간 기능 향상(ODBC)을 참조하십시오.

SQLDescribeParam은 큰 CLR UDT(사용자 정의 형식)를 지원합니다. 자세한 내용은 큰 CLR 사용자 정의 형식(ODBC)을 참조하십시오.

커뮤니티 추가 항목

추가
표시: