c2design 6월 23일에 포스트됨 공유하기 6월 23일에 포스트됨 FireDAC 의 TFDConnection 사용시 Database 서버에 연결이 된 상태에서 네트워크의 물리적 단절이나 Database 서버 다운등으로 인하여 연결이 끊어 졌다가 네트워크 상태가 복구 되고 난 후 TFDConnection 이 재 연결을 시도 이후 쿼리 작업 등을 자동으로 재 실행 할 수있게 하는 데모 입니다. 관련 내용의 상세 옵션과 설명은 아래 링크의 글에서 확인 가능 합니다. * 데모 샘플 화면 샘플 프로젝트는 My-SQL 데이터베이스를 사용하였고 TFDConnection 과 TFDQuery TDatasource TDBGrid 를 사용하여 테이블의 데이터를 조회 하는 기본 방식 입니다. 변경해야 하는 옵션은 TFDConnection 에서 AutoReconnect를 TRUE 지정 하는 것 입니다. 버튼 클릭시 FDQuery1.Active := TRUE; 로 지정하여 미리 입력한 쿼리문을 실행하고 TFDConnection 의 커넥션은 TRUE 인 상태로 유지합니다. TFDConnection 의 OnRecover 와 OnRestored 이벤트 핸들러를 추가하여 소스와 같이 상태를 확인 할 수 있습니다. procedure TForm8.BT_QueryActiveClick(Sender: TObject); begin FDQuery1.Active := TRUE; end; procedure TForm8.BT_ClearClick(Sender: TObject); begin FDQuery1.Active := FALSE; end; procedure TForm8.FDConnection1Recover(ASender, AInitiator: TObject; AException: Exception; var AAction: TFDPhysConnectionRecoverAction); var iRes: Integer; begin iRes := MessageDlg('연결이 끊겼습니다. 오프라인 - Yes, 다시 시도 - OK, 실패 - Cancel을 클릭하세요.', mtConfirmation, [mbYes, mbOK, mbCancel], 0); case iRes of mrOk: AAction := faRetry; mrYes: AAction := faOfflineAbort; mrCancel: AAction := faFail; end; end; procedure TForm8.FDConnection1Restored(Sender: TObject); begin ShowMessage( '재 연결 되었습니다.' ); end; 물리적으로 연결을 단절 시켰다가 복구 하여 재연결 하면 연결 단절 상태에서 요청했던 쿼리가 바로 실행 되는 것을 볼 수 있습니다. 인용하기 이 댓글 링크 다른 사이트에 공유하기 더 많은 공유 선택 사항
Recommended Posts
이 토의에 참여하세요
지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.