2012-01-08 6 views
1

나는 대답이 '아니오'라고 생각하지만 어쨌든 묻습니다. SQL Server 2005 이상은 서비스 브로커 메커니즘을 통해 쿼리에 대한 라이브 뷰 구현을 지원합니다. .NET 클래스 SqlDependency는이 기능을 사용합니다. SQL Server CE는이를 지원하지 않습니다.Compact Edition의 SqlDependency (변경 알림)?

궁금합니다. SQL Server 버전이있는 경우 쿼리에 대한 라이브 뷰를 갖고 싶다면 CE가 될 것입니다. 그렇지 않습니까? 어쨌든 반응 형 대화식 GUI를 실행할 가능성이 가장 높습니다. CE가있는 쿼리에 대한 라이브 뷰를 구현하는 대체 메커니즘이 있습니까? 아니면 폴링으로 인해 확인해야합니까?

답변

0

GUI를 원본 데이터의 라이브 커서 인 SqlCeResultSet에 바인딩 할 수 있습니다.

+0

감사합니다. 불행히도 거기에 바인딩 할 적절한 컨트롤이없는 것 같습니다. 바인딩은 WinForms 용으로 설계된 것으로 보이지만 셀을 클릭하지 않는 한 바인딩도 업데이트되지 않습니다. 하지만 아마 데이터베이스 API 레이어에 문제가되지 않습니다. – John

0

SQL CE는 in-process 서버입니다. 따라서 동시 액세스 문제가없고 프로세스가 변경 한 사항을 감지하는 데 어려움이 있습니다. 큰 SQL Server에서이 문제는 Query Notifications으로 처리되며 SqlDependency 및 친구들이 클라이언트에서 활용합니다.

SQL CE의 경우 데이터를 변경하는 프로세스가 하나 (프로세스 만!)이므로 언제/어떤 데이터가 변경되었는지 알 수 있으므로 이에 따라 뷰를 새로 고칠 수 있습니다.

+0

필자는 필요한 모든 새로 고침을 구현하는 데 필요한 논리를 이론적으로 직접 코딩 할 수 있다는 점에서 데이터가 언제 바뀌는 지 압니다. 그러나 그 시나리오에 따라 지루하고 어려운 사이에서. 다양한 조건에서 조인을 사용하여 임의의 쿼리를 이미지화하면 관련 테이블 중 하나에서 한 행이 변경됩니다. 업데이트해야합니까? 이것은 사소한 문제가 아니며 나를 해결할 데이터베이스 작업이라고 생각했을 것입니다. – John

+0

특히 SQL Server 또는 SQL Server를 탐색하고 자체 쿼리 결과를 업데이트하는 범용 데이터베이스 브라우저로 이름을 지정합니다. 나는 모른다. – John

+0

결론 :이 답변에서는 SSCE가 잘못되었습니다. SSCE는 응용 프로그램 내 및 심지어 응용 프로그램 전체에 대한 동시 액세스를 지원합니다. 동일한 시나리오를 찾고 있습니다. 하나의 응용 프로그램이 데이터베이스를 업데이트하고 다른 응용 프로그램이 동일한 데이터베이스의 거의 실시간보기를 제공하려고합니다. SSCE가이를 수행 할 수있는 방법을 제공하면 좋을 것입니다. –