다음을 통해 공유


위치 지정 업데이트 및 삭제 문 실행

Important

이 기능은 이후 Windows 버전에서 제공될 예정입니다. 새 개발 작업에서 이 기능을 사용하지 말고 현재 이 기능을 사용하는 애플리케이션을 수정할 계획입니다. 드라이버의 커서 기능을 사용하는 것이 좋습니다.

애플리케이션이 SQLFetchScroll을 사용하여 데이터 블록을 가져온 후에는 블록의 데이터를 업데이트하거나 삭제할 수 있습니다. 배치된 업데이트를 실행하거나 삭제하려면 애플리케이션:

  1. SQLSetPos를 호출하여 업데이트 또는 삭제할 행에 커서를 배치합니다.

  2. 다음 구문을 사용하여 위치가 지정된 update 또는 delete 문을 생성합니다.

    UPDATE table-name

    SET column-identifier= {expression | NULL}

    [, 열 식별자 = {expression | NULL}]

    WHERE CURRENT OF cursor-name

    DELETE FROM table-name WHERE CURRENT OF cursor-name

    배치된 업데이트 문에서 SET 절을 생성하는 가장 쉬운 방법은 업데이트할 각 열에 대한 매개 변수 마커를 사용하고 SQLBindParameter를 사용하여 업데이트할 행의 행 집합 버퍼에 바인딩하는 것입니다. 이 경우 매개 변수의 C 데이터 형식은 행 집합 버퍼의 C 데이터 형식과 동일합니다.

  3. 위치가 지정된 update 문을 실행하는 경우 현재 행에 대한 행 집합 버퍼를 업데이트합니다. 위치가 지정된 업데이트 문을 성공적으로 실행한 후 커서 라이브러리는 현재 행의 각 열에서 해당 캐시로 값을 복사합니다.

    주의

    배치된 업데이트 문을 실행하기 전에 애플리케이션이 행 집합 버퍼를 올바르게 업데이트하지 않으면 문이 실행된 후 캐시의 데이터가 올바르지 않습니다.

  4. 커서와 연결된 문과 다른 문을 사용하여 위치가 지정된 update 또는 delete 문을 실행합니다.

    주의

    현재 행을 식별하기 위해 커서 라이브러리에서 생성된 WHERE 절은 행을 식별하거나 다른 행을 식별하거나 둘 이상의 행을 식별하지 못할 수 있습니다. 자세한 내용은 검색된 문 생성을 참조 하세요.

위치가 지정된 모든 업데이트 및 삭제 문에는 커서 이름이 필요합니다. 커서 이름을 지정하기 위해 애플리케이션은 커서를 열기 전에 SQLSetCursorName을 호출합니다. 드라이버에서 생성된 커서 이름을 사용하기 위해 애플리케이션은 커서를 연 후 SQLGetCursorName을 호출합니다.

커서 라이브러리가 위치 지정된 업데이트 또는 삭제 문을 실행한 후 커서 라이브러리에서 유지 관리하는 상태 배열, 행 집합 버퍼 및 캐시에는 다음 표에 표시된 값이 포함됩니다.

사용된 문 행 상태 배열의 값 의 값

행 집합 버퍼
의 값

캐시 버퍼
위치가 지정된 업데이트 SQL_ROW_UPDATED 새 값[1] 새 값[1]
위치가 지정된 삭제 SQL_ROW_DELETED 이전 값 이전 값

[1] 애플리케이션은 배치된 업데이트 문을 실행하기 전에 행 집합 버퍼의 값을 업데이트해야 합니다. 커서 라이브러리는 배치된 업데이트 문을 실행한 후 행 집합 버퍼의 값을 캐시에 복사합니다.