문제

보기에 (MSDN) 때때로 OLEDBCONNECTION.RESETSTATE ()는 아무것도하지 않으므로 연결이 실패하더라도 OLEDBCONNECTION.STATE는 여전히 열려 있습니다. 이에 대한 최상의 해결 방법을 찾고 있으므로 연결 상태를 확인할 때 예외를 제기하지 않아도됩니다 (마지막 확인과 사용 시도 사이에 연결이 실패하지 않는 한).

예외가 발생하는지 확인하기 위해 매번 "쓸모없는"SQL 문을 보내는 것보다 낫지 않습니까? 실제로 사용하기 전에 연결이 열리도록하려면 어떻게해야합니까?

도움이 되었습니까?

해결책

귀하의 경우에는 다음을 수행합니다.

  1. 연결이 사용하기 전에 "정말로"열려 있는지 확실하지 마십시오. 어쨌든 대부분의 시간이되며 서버에 대한 쓸모없는 왕복을 많이 할 것입니다.
  2. 그러나 연결을 사용할 때마다 예외를 확인하십시오 (여기에서 복사/붙여 넣기를 피하기 위해 도우미 방법을 작성하십시오).
  3. 예외가 있으면 "쓸모없는"명령문을 보내 데이터베이스 연결 "실제"상태를 확인하십시오. 서버에 대한 연결이 손실 될 때 얻을 수있는 예외 유형이 때때로 놀랍습니다 (연결이 끊어 질 때 발생하는 일에 따라 다름).

도움이 되었기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top