2017-11-17 9 views
0

여러 테이블이 포함 된 데이터 집합과 올바른 순서로 SQL 문을 호출하는 데 필요한 릴레이션이 있습니다.DataAdapter.Update() 및 데이터 집합 관계 스키마 사용

Adapter.Update() 메서드가 호출되면 SQL 호출 순서를 결정하기 위해 모든 테이블 간의 관계를 조사합니다. 예를 들어

:

  • 테이블 (A)에 삭제 표 B에 삽입 먼저 표 A. 내로 삽입이 필요
  • 표 B.에서 삭제 제 필요

어떻게 내 자신의 업데이트 전략을 구현하는 데 사용하는 메커니즘을 활용합니까?

이유는 어댑터가 업데이트를 수행하는 것을 허용 할 수 없기 때문에 대신 저장 프로 시저를 호출해야합니다.

* * * * * * EDIT * * * * * *

데이터 세트가 백엔드 서버 컴포넌트에 UI 클라이언트로부터 전달된다. 백 엔드 서버에서 DataAdapter.Update (dataSet)가 발생합니다.

답변

0

아마도 테이블에서 RowUpdating 이벤트를 사용하고 거기에서 저장 프로 시저를 호출 할 수 있습니다 ... 또한 표준 Update SQL 명령이 트리거되지 않도록 SqlRowUpdatingEventArgs.Status를 SkipCurrentRow로 설정하고 SqlRowUpdatingEventArgs.Row.AcceptChanges() RowState를 Unchanged로 다시 설정하려면 ...

+0

감사합니다.이 제안을 살펴 보겠습니다. 그러나, 나는 여러 테이블을 가지고 DataAdapter는 언제 무엇을 해야할지를 결정한다. 세분화 된 테이블 수준에 집중하는 대신 DataAdapter에서 수행하는 명령을 가로 채는 것 같습니다. 귀하의 제안이이를 고려합니까? – flaZer

+0

즉, DataAdpater.Update (table)보다는 DataAdapter.Update (dataSet)를 사용하고 있습니다. – flaZer

+0

그게 요점은 ... 잘하면 ... 당신은 데이터 집합에 대한 업데이 트를 호출하고 프레임 워크가 올바른 순서로 테이블에 대한 RowUpdating 이벤트를 트리거 ...하지만 그게 실제로 작동하는지 확인하지 않았다는 것을 인정해야합니다 ... – PrfctByDsgn