Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

[DocWiki 번역] 연결을 오프라인 모드으로 하기 (FireDAC)


Recommended Posts

Docwiki에 있는 "Offlining Connection (FireDAC)"을 번역한 글: 번역일: 2022년 4월 4일)

위로 가기: [DocWiki 번역] 연결(connection)을 가지고 작업하기 (FireDAC)

 

FireDAC 오프라인 (offline) 모드 사용법을 설명한다. 오프라인 모드에서는 데이터베이스 연결을 유지하지 않고도 데이터를 가지고 작업할 수 있다.

 

일반 (General)

FireDAC 오프라인 (offline) 모드는 멀티-티어 클라이언트와 비슷하다. 즉 클라이언트는 거의 항상 데이터베이스와 연결이 끊고 있다가 데이터베이스와 데이터를 교환해야 할 때에만 연결을 활성화한다. 이 방식은 환경이 안정적이지 않거나 DBMS 자원을 아끼고 보존해야 할 때 유용하다.

오프라인 모드에서, 데이터베이스 연결(connection)은 닫힘(closed) 상태이지만, 데이터셋은 열림(opened) 상태이다.

 

오프라인 제어하기 (Controlling Offlining)

연결(connection)을 오프라인(offline) 모드가 되게  하는 방법은 다음 중 하나이다.

FireDAC에서는 자동으로 연결(connection)을 오프라인 모드가 되게 할 수 없다. 그렇게 되면 다음번에 언제 데이터베이스에 접속해야 하는 지를 애플리케이션이 알 수 없기 때문이다. 따라서 애플리케이션 코드를 사용해서 처리해야만 한다. 연결(connection)이 오프라인 모드로 되기 전에는, 활성화된 데이터셋에 미처 담아오지 못한 결과 세트가 있다면  FetchOptions.AutoFetchAll 프로퍼티에 따라 해당 작업이 진행된다.
 

연결(connection)을 온라인(online) 모드가 되게  하는 방법은 다음 중 하나이다.

  • 명시적 방법: TFDCustomConnection.Online 메소드를 호출한다.
  • 암묵적 방법: DBMS에 연결하려고 할 때, 명령(command)를 실행하거나 업데이트 전송(post) 등을 진행한다.

주의: 반드시 ResourceOptions.AutoConnectTrue로 지정된 상태에서 수행해야 한다는 점이다. 그렇지 않으면 예외(exception)가 발생한다.

만약,  데이터셋에서 ResourceOptions.PersistentFileName 프로퍼티가 명시되어 있으면, 데이터셋에서 Open을 호출할 때, 연결이 필요없으며, 내용을 특정 파일로부터 로드한다.

주의: 연결을 오프라인 모드로 했다가 다시 온라인 모드로 하는 것은 데이터베이스 세션의 상태가 유실된다는 점에서 연결이 끊어졌을 때 복구하는 것과 유사하다. 자세한 내용은 연결 복구하기 글을 읽는다.

 

기타 자료 (See Also)

이 댓글 링크
다른 사이트에 공유하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 토픽(기고/질문)에 답하기

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.