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)을 참조하십시오.
변경 내역
업데이트된 내용 |
---|
SQLSTATE 22026에 대한 정보를 추가했습니다. |