다음을 통해 공유


테이블 반환 매개 변수의 ODBC SQL 유형

새로운 ODBC SQL 형식인 SQL_SS_TABLE에서 테이블 반환 매개 변수에 대한 지원을 제공합니다.

주의

SQL_SS_TABLE은 다른 ODBC 또는 SQL Server 데이터 형식으로 변환할 수 없습니다.

SQL_SS_TABLE을 SQLBindParameter의 ValueType 매개 변수에서 C 데이터 형식으로 사용하거나 APD(응용 프로그램 매개 변수 설명자) 레코드의 SQL_DESC_TYPE을 SQL_SS_TABLE로 설정하려고 하면 SQL_ERROR가 반환되고 SQLSTATE=HY003, "잘못된 응용 프로그램 버퍼 형식입니다"가 표시되며 진단 레코드가 생성됩니다.

IPD 레코드에 SQL_DESC_TYPE이 SQL_SS_TABLE로 설정되어 있고 해당 APD 레코드가 SQL_C_DEFAULT가 아닌 경우 SQL_ERROR가 반환되고 SQLSTATE=HY003, "잘못된 응용 프로그램 버퍼 형식입니다"가 표시되며 진단 레코드가 생성됩니다. SQLSetDescField, SQLSetDescRec 또는 SQLBindParameter의 ParameterType에도 이러한 현상이 발생할 수 있습니다.

SQLGetData를 호출할 때 TargetType 매개 변수가 SQL_SS_TABLE이면 SQL_ERROR가 반환되고 SQLSTATE=HY003, "잘못된 응용 프로그램 버퍼 형식입니다"가 표시되며 진단 레코드가 생성됩니다.

테이블 반환 매개 변수 열은 SQL_SS_TABLE 형식으로 바인딩할 수 없습니다. ParameterType을 SQL_SS_TABLE로 설정하고 SQLBindParameter를 호출하면 SQL_ERROR가 반환되고 SQLSTATE=HY004, "잘못된 SQL 데이터 형식입니다"가 표시되며 진단 레코드가 생성됩니다. SQLSetDescFieldSQLSetDescRec에서도 이러한 현상이 발생할 수 있습니다.

테이블 반환 매개 변수 열 값에는 매개 변수 및 결과 열과 동일한 데이터 변환 옵션이 포함됩니다.

테이블 반환 매개 변수는 입력 매개 변수로만 사용할 수 있습니다. SQLBindParameter 또는 SQLSetDescField를 통해 SQL_DESC_PARAMETER_TYPE을 SQL_PARAM_INPUT이 아닌 다른 값으로 설정하려고 하면 SQL_ERROR가 반환되고 SQLSTATE=HY005 및 "매개 변수 유형이 잘못되었습니다"라는 메시지가 표시되며 진단 레코드가 문에 추가됩니다.

테이블 반환 매개 변수에는 행별 기본값이 지원되지 않으므로 테이블 반환 매개 변수 열의 StrLen_or_IndPtr에는 SQL_DEFAULT_PARAM을 사용할 수 없습니다. 대신 응용 프로그램에서 열 특성 SQL_CA_SS_COL_HAS_DEFAULT_VALUE를 1로 설정할 수 있습니다. 즉, 해당 열이 모든 행에 대해 기본값을 갖습니다. StrLen_or_IndPtr를 SQL_DEFAULT_PARAM으로 설정하면 SQLExecute 또는 SQLExecDirect에서 SQL_ERROR가 반환되고 SQLSTATE=HY090 및 "잘못된 문자열 또는 버퍼 길이입니다"라는 메시지가 표시되며 진단 레코드가 문에 추가됩니다.