다음을 통해 공유


클라이언트에서 서버로 데이터 밀어넣기

클라이언트에서 서버로 데이터를 밀어넣는 작업에는 Microsoft SQL Server Compact 3.5(SQL Server Compact 3.5)의 변경 내용을 SQL Server 테이블로 다시 전달하는 작업이 포함됩니다. 자세한 내용은 Push 메서드를 참조하십시오.

응용 프로그램에서 로컬 SQL Server Compact 3.5 테이블은 추적 옵션이 설정된 상태로 Pull 메서드를 호출하여 생성되어야 합니다.

RDA(Remote Data Access)로 추적된 PullPush 메서드는 낙관적 동시성 제어를 사용합니다. SQL Server에서는 끌어온 레코드를 잠그지 않습니다. 응용 프로그램에서 Push를 호출하면 로컬 SQL Server Compact 3.5 데이터베이스의 변경 내용이 SQL Server 데이터베이스에 무조건 적용됩니다. 이로 인해 SQL Server 데이터베이스의 다른 사용자가 변경한 내용이 손실될 수 있습니다.

일괄 처리

RDA_BATCHOPTION은 SQL Server 테이블로 전송되는 변경 내용을 SQL Server Compact 3.5에서 일괄 처리할지 여부를 지정합니다. 기본 설정은 BATCHINGOFF이며 변경 내용(삽입, 업데이트 및 삭제)이 개별 트랜잭션으로 SQL Server 테이블에 적용됩니다. 각 트랜잭션의 성공 여부는 다른 트랜잭션에 종속되지 않습니다. BATCHINGON은 단일 트랜잭션으로 모든 변경 내용을 전송하도록 지정합니다. 이 경우 트랜잭션이 성공하려면 모든 변경 내용이 성공적으로 적용되어야 합니다. 한 가지 변경 내용 적용이 실패하면 전체 트랜잭션이 실패하고 SQL Server 테이블에 어떠한 변경 내용도 적용되지 않습니다. BATCHINGON이 기본 옵션은 아니지만, 일부 개발자들은 충돌 해결 코드를 구축하기 위한 간단한 방안으로 이 옵션을 사용합니다. 자세한 내용은 RDA 충돌 감지 및 보고를 참조하십시오.

BATCHINGONBATCHINGOFF는 모두 발생하는 첫 번째 오류뿐 아니라 모든 오류를 오류 테이블에 반환합니다. 예를 들어 BATCHINGON을 지정하고 변경 내용 5개 중 3개가 실패하는 경우 어떠한 변경 내용도 적용되지 않으며 3개의 실패는 모두 오류 테이블에 저장됩니다. BATCHINGOFF를 지정하면 동일한 3개의 실패가 오류 테이블에 저장되며 다른 두 변경 내용은 SQL Server 테이블에 적용됩니다.

일괄 처리가 아닌 트랜잭션

일괄 처리가 아닌 트랜잭션(BATCHINGOFF 옵션) 중에는 행 수준에서 충돌이 검색됩니다. 충돌 행은 응용 프로그램으로 반환되어 지정된 오류 테이블에 저장됩니다. 예를 들어 응용 프로그램에서 SQL Server에 잘못된 행을 밀어넣으려고 시도할 경우 해당 행은 응용 프로그램으로 반환되며 충돌을 나타내는 오류 메시지와 함께 오류 테이블에 저장됩니다.

충돌 행이 오류 테이블로 반환되면 해당 행은 장치의 원래 데이터베이스에서 제거됩니다. 사용자가 충돌 데이터를 수정하고 원래의 Windows Mobile 기반 데이터베이스로 충돌 데이터를 병합할 수 있도록 응용 프로그램을 설계해야 합니다.

일괄 처리 트랜잭션

RDA에서는 일괄 처리 밀어넣기(BATCHINGON 옵션)도 지원합니다. 이 경우, 전체 밀어넣기를 처리하려면 모든 행이 성공해야 합니다. 한 행이라도 실패하면 전체 밀어넣기 트랜잭션이 실패하고 데이터가 업데이트되지 않습니다. 충돌하는 행이 오류 테이블로 복사됩니다. 일괄 처리가 아닌 밀어넣기와는 달리, 원래의 Windows Mobile 기반 데이터베이스는 그대로 유지됩니다. 사용자가 충돌 데이터를 수정하고 원래의 Windows Mobile 기반 데이터베이스로 충돌 데이터를 병합할 수 있도록 응용 프로그램을 설계해야 합니다. 오류 테이블은 충돌 행이 복사되기 전에 자동으로 삭제되기 때문에 테이블에는 마지막 밀어넣기 작업에서의 충돌만 존재합니다.

참고 항목

관련 자료

방법: RDA 개체를 사용하여 데이터 밀어넣기(프로그래밍 방식)

도움말 및 정보

지원 받기(SQL Server Compact 3.5 서비스 팩 1)