다음을 통해 공유


SQLBulkOperations를 사용하여 책갈피로 행 업데이트

책갈피 로 행을 업데이트할 때 SQLBulkOperations 는 데이터 원본이 테이블의 행을 하나 이상 업데이트합니다. 행은 바인딩된 책갈피 열의 책갈피로 식별됩니다. 행은 각 바인딩된 열에 대한 애플리케이션 버퍼의 데이터를 사용하여 업데이트됩니다(열의 길이/표시기 버퍼 값이 SQL_COLUMN_IGNORE 경우 제외). 언바운드 열은 업데이트되지 않습니다.

SQLBulkOperations를 사용하여 책갈피 별로 행을 업데이트하려면 애플리케이션:

  1. 업데이트할 모든 행의 책갈피를 검색하고 캐시합니다. 책갈피가 둘 이상 있고 열 단위 바인딩이 사용되는 경우 책갈피는 배열에 저장됩니다. 책갈피가 두 개 이상 있고 행 단위 바인딩이 사용되는 경우 책갈피는 행 구조의 배열에 저장됩니다.

  2. SQL_ATTR_ROW_ARRAY_SIZE 문 특성을 책갈피 수로 설정하고 책갈피 값 또는 책갈피 배열이 포함된 버퍼를 열 0에 바인딩합니다.

  3. 행 집합 버퍼에 새 데이터 값을 배치합니다. SQLBulkOperations사용하여 긴 데이터를 보내는 방법에 대한 자세한 내용은 Long Data 및 SQLSetPos 및 SQLBulkOperations를 참조하세요.

  4. 필요에 따라 각 열의 길이/표시기 버퍼의 값을 설정합니다. 문자열 버퍼에 바인딩된 열에 대한 데이터 또는 SQL_NTS 바이트 길이, 이진 버퍼에 바인딩된 열에 대한 데이터의 바이트 길이 및 NULL로 설정할 열에 대한 SQL_NULL_DATA.

  5. SQL_COLUMN_IGNORE 업데이트하지 않을 열의 길이/표시기 버퍼 값을 설정합니다. 애플리케이션은 이 단계를 건너뛰고 기존 데이터를 다시 보낼 수 있지만 이는 비효율적이며 읽을 때 잘린 데이터 원본으로 값을 보낼 위험이 있습니다.

  6. operation 인수가 SQL_UPDATE_BY_BOOKMARK 설정된 SQLBulkOperations 를 호출합니다.

업데이트로 데이터 원본에 전송되는 모든 행에 대해 애플리케이션 버퍼에는 유효한 행 데이터가 있어야 합니다. 애플리케이션 버퍼가 페치하여 채워진 경우 행 상태 배열이 기본이고 행의 상태 값이 SQL_ROW_DELETED, SQL_ROW_ERROR 또는 SQL_ROW_NOROW 경우 잘못된 데이터를 실수로 데이터 원본으로 보낼 수 있습니다.