다음을 통해 공유


SQLPutData

SQLPutData를 사용하여 SQL_LONGVARCHAR(text), SQL_WLONGVARCHAR(ntext) 또는 SQL_LONGVARBINARY(image)에 데이터를 65,535바이트 이상(SQL Server 버전 4.21a) 또는 400KB 이상(SQL Server 버전 6.0 이상) 보낼 경우 다음과 같은 제한 사항이 적용됩니다.

  • 참조되는 매개 변수는 INSERT 문에서 insert_value가 될 수 있습니다.

  • 참조되는 매개 변수는 UPDATE 문의 SET 절에서 expression이 될 수 있습니다.

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

[!참고]

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이 아닌 값으로 설정해야 합니다. 자세한 내용은 테이블 반환 매개 변수 및 열 값에 대한 바인딩 및 데이터 전송에서 가변 테이블 반환 매개 변수 행 바인딩 섹션을 참조하십시오.

StrLen_Or_Ind의 값이 SQL_DEFAULT_PARAM 이외의 값이거나 0과 SQL_PARAMSET_SIZE(SQLBindParameter의 ColumnSize 매개 변수) 사이의 값이면 오류입니다. 이 오류가 발생하면 SQLPutData에서 SQL_ERROR: SQLSTATE=HY090, "잘못된 문자열 또는 버퍼 길이입니다."가 반환됩니다.

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

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

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

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

큰 CLR UDT에 대한 SQLPutData 지원

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

참고 항목

개념

ODBC API 구현 정보

관련 자료

SQLPutData 함수