2011-04-07 2 views
0

데이터베이스 테이블에 변경 사항이있을 때 타이머 컨트롤을 사용하지 않고 GridView를 자동으로 업데이트하는 방법.데이터베이스에 변경 사항이있을 때 타이머 컨트롤을 사용하지 않고 gridview를 자동으로 업데이트하는 방법

아무도 내 질문을받을 수 없다면 저에게 말씀해주십시오. 응용 프로그램이 데이터베이스를 조회하지만이 상황에서 데이터베이스 이벤트 트리거를 사용하여 발생할 수있는 데이터베이스를 events.though의 원인이 필요하지만 몇 가지 한계와 변화의 범위가 필요

+0

저는 타이머를 사용하는 것이 데이터베이스에 변경이 언제 발생하는지 모르기 때문에 발생한다고 생각합니다. 변경된 내용을 기반으로 데이터베이스를 업데이트하려면 1 위에서 데이터베이스를 모니터링 할 대상이 있어야합니다. 데이터베이스 변경 사항이 응용 프로그램에서만 수행되는 경우 더 쉽습니다. 그렇지 않다면 그렇게하기 어려울 수도 있습니다. –

답변

0

데이터베이스의 변경 사항을 응용 프로그램에서 감지하려면 관련 테이블을 모니터링하거나 외부 소스에서 데이터베이스의 변경 사항을 어떻게 든 알리십시오. 타이머를 사용하여 데이터베이스를 폴링하여 변경 사항을 폴링하는 것이 하나의 옵션입니다. 다른 프로그램에서 해당 작업을 수행 한 다음 응용 프로그램에 알리는 것이 다른 방법입니다. 일부 데이터베이스 (예 : Firebird)는 응용 프로그램이들을 수있는 이벤트를 게시 할 수 있습니다.

데이터베이스 게시 이벤트를 사용하는 것이 훨씬 쉬운 해결책이지만 물론이 기능을 갖춘 데이터베이스를 사용해야합니다. 당신은 또한 당신의 디자인을 고려해야합니다. 왜 GUI에 통보하기 위해 데이터베이스가 필요합니까? GUI를 업데이트하는 것이 정말로 필요하거나 간단한 방법일까요? 이 전략을 결정하기 전에 응용 프로그램의 여러 계층에서 수행해야하는 역할에 대해 생각해보십시오.

가끔씩 데이터베이스 변경이 GUI 변경이나 다른 작업을하는 경우는 완전히 받아 들일 수 있습니다. 데이터베이스가 여러 사용자간에 공유되고 각 사용자가 다른 사용자가 취한 조치에 대해 통지를 받아야하는 경우 좋은 해결책이 될 수 있습니다. 개인적으로는 데이터 기반 접근법에 정착하기 전에 다른 의사 소통 방법을 찾으려고 노력하지만 어떤 경우에는 실제로 가능한 많은 다른 옵션이 없습니다.

0

실제로 사전에

감사 일어나는 장소는 데이터베이스 내에서만 제한됩니다. 애플리케이션의 변경 사항 (여기서는 gridview의 업데이트)은 애플리케이션에서만 호출이 이루어지는 경우에만 발생할 수 있습니다. 애플리케이션의 타이머 컨트롤을 사용하여 수행 할 수 있습니다. 응용 프로그램에서 데이터베이스를 호출 할 수 없습니다.

0

응용 프로그램에서 오프라인으로 실행되는 Windows 서비스를 사용할 수 있습니다. 서비스가 db를 쿼리하고 변경 사항이있을 때 시스템의 파일을 업데이트합니다 ... 응용 프로그램에서 파일에 cahce 종속성을 사용할 수 있습니다.

0

나는 100 % 확신 할 수는 없지만 Windows Communication Foundation과 그들이 갖고있는 몇 가지 예를 살펴볼 수 있다고 생각합니다.

관련 문제