2012-11-23 2 views
3

데이터베이스와 함께 작동하는 구성 요소에 대해 작업 중이며 데이터베이스 검사는 TADOConnection 속성을 통해이 구성 요소 외부에서 지정됩니다 (Object Inspector에 표시됨). 외부 사용자가이 ADO 구성 요소의 이벤트를 사용하려고 할 수도 있다고 가정합니다. 그러나 연결 또는 연결 끊기 및 기타 다양한 이벤트를 감지 할 수 있어야합니다. 외부 사용자가 할당 한 이벤트 처리기를 재정의하지 않고 TADOConnection의 이벤트를 가져올 수 있습니까?외부 ADO 연결이 연결되거나 연결이 끊어진 경우 구성 요소 내부를 검색하는 방법?

+0

를 호출 할 수/분리? – jachguate

+0

예, 'OnCommitTransComplete'와 같은 모든 이벤트 - 사용자의 이러한 이벤트 구현을 방해하고 싶지 않습니다. –

+1

흥미로운 사실 ​​: ADO 연결은 TADOConnection.Connected 속성이 원격 MS SQL Server ADO 연결에 대해 false가되는 일없이 끊어 지거나 끊어 질 수 있습니다. 이것은 심각한 네트워크 오류가 발생하거나 SQL 서버가 쓰러지고 과부하가 걸렸을 때 발생합니다. –

답변

5

무거운 부작용 및/또는 엄격한 제한없이이 문제에 대한 해결책은 없습니다.

당신은 이벤트를 다시 라우팅해야하지만 ...

외부 사용자는 디자인 타임에 이벤트 (그 방법으로 처리 할 수있다)뿐만 아니라 런타임에 수정할 수 있습니다 모든 접근이 중단됩니다.

TADOConnection에서 자체 강하를 게시하고 외부 사용자가이를 사용하고 멀티 캐스트 이벤트를 구현할 수있는 가능한 해결책 (그리고 제한 사항)이 있습니다.

방금 ​​/ 분리 이벤트를 연결하는 정보를 얻고 싶은 경우에, 당신은 당신이 _GET 통지 또는 event_ 연결에 의미 _detect_에 의해 보호 방법 TCustomConnection.RegisterClient (단위 Data.DB)

관련 문제