Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[10746] Re: ADO에서의 CachedUpdate...
박지훈.임프 [cbuilder] 1938 읽음    2006-06-13 21:03
CachedUpdate와 ApplyUpdate가 그런 역할을 하는 것은 맞습니다.
그런데 CachedUpdate/ApplyUpdate 기능은 BDE에만 있고 ADO에는 그런 기능이 없습니다.

다른 방법으로는, TClientDataSet을 쓰면 됩니다.
TADODataSet과 TDataSource를 직접 연결하지 말고, 중간에 TDataSetProvider와 TClientDataSet를 차례로 연결해주면 됩니다. TClientDataSet이 일종의 캐시 역할을 하고, TClientDataSet.AppliyUpdate 메소드를 호출해주면 TADODataSet에 반영됩니다.

컴포넌트들을 연결하는 방법은 다음과 같습니다. TDataSource 컴포넌트의 DataSet 속성을 TClientDataSet으로 연결합니다. 다음으로 TClientDataSet 컴포넌트의 ProviderName 속성을 TDataSetProvider 컴포넌트로 설정합니다. 마지막으로 TDataSetProvider 컴포넌트의 DataSet 속성을 TADODataSet 컴포넌트로 설정하면 됩니다.

원래 TADODataSet과 TDataSource가 직접 연결되어 있던 중간에 TClientDataSet과 TDataSetProvider가 들어가는 거죠.

그럼...


Yougn 님이 쓰신 글 :
: 안녕하세요.
:
: 웹개발만 하다가 데스크탑으로 왔더니 아직 잘 이해가 안가는 부분이 많네요.
:
: 엑세스 파일을 저장/불러오기 용도로 사용하는 데이터베이스 데스크탑 프로그램인데요
: (즉 Jet 엔진을 사용하고 델파이에선 ADO DataSet 을 사용합니다.)
:
: 우선- 대부분의 델파이에서 ADO DataSet 쪽 '예제'는-
: Post 메소드가 호출될때마다 그 데이터가 Connection 에 연결된
: 엑세스 파일(Jet DB 파일)로 바로 저장이 되는데비해
:
:
: 실제 데스크탑 어플리케이션들은 유저의 Create나 Update, Delete 등의
: 액션이 있더라도 바로 저장이 되지 않고 Save 를 할때만
: 한꺼번에 파일로 저장을 하지 않습니까.
:
:
: 이걸 어떻게 구현해야할지. 예제들 만으론 잘 모르겠네요.
: 혹시 CachedUpdate 나 ApplyUpdate 쪽의 내용들이 이를 구현하는데 사용되나요.
: (이건 C/S 어플리케이션의 트랜잭션을 줄이기 위한 목적인것 같기도하고. 둘 모두에 사용되는것 같기도하고)
:
:
: 어떤식으로 구현해야할지. 혹은 이것과 관련된 예제나 리소스를 가르쳐 주시면 감사하겠습니다 : )
:
:
: 아. 그리고 또 기본적인 것인데.
: 예제들은 Connection 을 하나의 Jet 파일로 고정시키는데-
: 실제로 여러 파일에 마음대로 저장할수 있는 대부분의 어플들은
: Connection String 의 경로지정을 다양하게 함으로써 구현하는것이 맞나요?

+ -

관련 글 리스트
10739 [질문] 일반적인 GUI 어플리케이션의 저장방법에 대한 질문입니다. Yougn 1275 2006/06/11
10746     Re: ADO에서의 CachedUpdate... 박지훈.임프 1938 2006/06/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.