다음을 통해 공유


SQLPutData

적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)

SQLPutData를 사용하여 SQL_LONGVARCHAR(텍스트), SQL_WLONGVARCHAR(ntext) 또는 SQL_LONGVARBINARY(이미지) 열에 대해 65,535바이트 이상의 데이터(SQL Server 버전 4.21a의 경우) 또는 400KB 이상의 데이터(SQL Server 버전 6.0 이상)를 보낼 때 적용되는 제한 사항은 다음과 같습니다.

  • 참조된 매개 변수는 INSERT 문의 insert_value있습니다.

  • 참조된 매개 변수는 UPDATE 문의 SET 절에 있는 식수 있습니다.

SQL Server를 실행하는 서버에 블록의 데이터를 제공하는 SQLPutData 호출 시퀀스를 취소하면 버전 6.5 이하를 사용할 때 열 값이 부분적으로 업데이트됩니다. SQLCancel이 호출될 때 참조된 텍스트, ntext 또는 이미지 열은 중간 자리 표시자 값으로 설정됩니다.

참고 항목

SQL Server Native Client ODBC 드라이버는 SQL Server 버전 6.5 이하에 대한 연결을 지원하지 않습니다.

진단

SQLPutData에 대한 하나의 SQL Server Native Client 특정 SQLSTATE가 있습니다.

SQLSTATE 오류 설명
22026 문자열 데이터, 길이 불일치 전송할 데이터의 길이(예: n이 0보다 큰 경우 SQL_LEN_DATA_AT_EXEC(n)를 사용하여 애플리케이션에서 바이트 단위로 지정한 경우 SQLPutData를 통해 애플리케이션에서 제공하는 총 바이트 수는 지정된 길이와 일치해야 합니다.

SQLPutData 및 테이블 반환 매개 변수

SQLPutData는 테이블 반환 매개 변수와 함께 변수 행 바인딩을 사용할 때 애플리케이션에서 사용됩니다. StrLen_Or_Ind 매개 변수는 드라이버가 테이블 반환 매개 변수 데이터의 다음 행 또는 행에 대한 데이터를 수집할 준비가 되었음을 나타내거나 더 이상 행을 사용할 수 없음을 나타냅니다.

  • 0보다 큰 값은 다음 행 값 집합을 사용할 수 있음을 나타냅니다.

  • 값이 0이면 보낼 행이 더 이상 없음을 나타냅니다.

  • 0보다 작은 값은 오류를 나타내며 SQLState HY090 및 "잘못된 문자열 또는 버퍼 길이입니다."라는 메시지가 포함된 진단 레코드가 기록됩니다.

DataPtr 매개 변수는 무시되지만 NULL이 아닌 값으로 설정해야 합니다. 자세한 내용은 테이블 반환 매개 변수 및 열 값의 바인딩 및 데이터 전송에서 변수 TVP 행 바인딩에 대한 섹션을 참조하세요.

StrLen_Or_Ind SQL_DEFAULT_PARAM 이외의 값이나 0과 SQL_PARAMSET_SIZE 사이의 숫자(즉, SQLBindParameter의 ColumnSize 매개 변수)가 있는 경우 오류가 발생합니다. 이 오류로 인해 SQLPutData는 SQLSTATE=HY090, "잘못된 문자열 또는 버퍼 길이"SQL_ERROR 반환합니다.

테이블 반환 매개 변수에 대한 자세한 내용은 ODBC(테이블 반환 매개 변수)를 참조하세요.

향상된 날짜 및 시간 기능에 대한 SQLPutData 지원

날짜/시간 형식의 매개 변수 값은 C에서 SQL로의 변환에 설명된 대로 변환됩니다.

자세한 내용은 날짜 및 시간 개선 사항(ODBC)을 참조하세요.

큰 CLR UDT에 대한 SQLPutData 지원

SQLPutData 는 큰 CLR UDT(사용자 정의 형식)를 지원합니다. 자세한 내용은 ODBC(큰 CLR 사용자 정의 형식)를 참조하세요.

참고 항목

SQLPutData 함수
ODBC API 구현 정보