Q&A

  • 일반적인 GUI 어플리케이션의 저장방법에 대한 질문입니다.
안녕하세요.

웹개발만 하다가 데스크탑으로 왔더니 아직 잘 이해가 안가는 부분이 많네요.


우선- 대부분의 델파이에서 ADO DataSet 쪽 '예제'는-
Post 메소드가 호출될때마다 그 데이터가 Connection 에 연결된
엑세스 파일(Jet DB 파일)로 바로 저장이 되는데비해


실제 데스크탑 어플리케이션들은 유저의 Create나 Update, Delete 등의
액션이 있더라도 바로 저장이 되지 않고 Save 를 할때만
한꺼번에 파일로 저장을 하지 않습니까.


이걸 어떻게 구현해야할지. 예제들 만으론 잘 모르겠네요.
혹시 CachedUpdate 나 ApplyUpdate 쪽의 내용들이 이를 구현하는데 사용되나요.
(이건 C/S 어플리케이션의 트랜잭션을 줄이기 위한 목적인것 같기도하고. 둘 모두에 사용되는것 같기도하고)


어떤식으로 구현해야할지. 혹은 이것과 관련된 예제나 리소스를 가르쳐 주시면 감사하겠습니다 : )


아. 그리고 또 기본적인 것인데.
예제들은 Connection 을 하나의 Jet 파일로 고정시키는데-
실제로 여러 파일에 마음대로 저장할수 있는 대부분의 어플들은
Connection String 의 경로지정을 다양하게 함으로써 구현하는것이 맞나요?

2  COMMENTS
  • Profile
    이희진 2006.06.14 02:31
    ADO DataSet의 LockType을 ltBatchOptimistic으로 세팅하시고,
    post 작업 후에 UpdateBatch(ArAll)을 호출하면, 작업한 내용을 한번에 저장합니다.
  • Profile
    Young 2006.06.14 03:29



    답변 감사드립니다.


    그럼 파일 열기/저장/새이름으로 저장등의 기능이 구현된
    데스크탑 어플리케이션들은
    (즉 하나의 데이터저장만을 강제하지 않는 어플리케이션들은)


    저장되는 파일마다 각각이 Jet 엔진의 DB파일인가요?
    그래서 "열기" 를 할때마다 그 파일을 ADOConnection 에 연결시키는.


    왜 이것을 묻냐면
    ADODataSet 에 SaveToFile / LoadFromFile 의 기능이 있길래
    이 기능을 활용해서 하나의 DB파일(.mbd파일) 에 스킴만을 보존하고 SaveToFile / LoadFromFile 기능을 활용해서
    사용자가 지정한 파일에 필요한 데이터들을 저장하는 것인지


    아니면
    처음 물은대로 "저장" 마다 각각의 Jet 엔진 DB 파일 (.mdb 파일)
    을 가지게하나요? (말한대로 이경우는 "열기" 가 컨넥션을 바꾸는것이 겠죠)


    두개 다 구현가능한 방법일 것 같은데
    어느쪽이 더 일반적으로 사용되는 것인지-
    어느쪽에 치명적인 약점은 없는지 궁금합니다.