Midas에서 대량의 레코드를 Open할 수도 있는 프로그램이라서
매번 ClientDataSet를 Close하였다가 Open하기가 좀 그렀습니다!
이런 경우입니다!
ClientDataSet1은 Join된 테이블을 열고 있으며 DBGrid와 연결되어 있습니다!
여기서 DBGrid내의 특정 레코드를 더블클릭하면 선택된 레코드를 수정하는
화면이 뜹니다!
수정 화면에서는 무조건 Update만 일어납니다!
여기서는 ClientDataSet2가 Update를 합니다!
화면을 닫으면 앞의 화면이 나타나면서 Close하였다가 다시 Open합니다!
그래서 수정된 자료를 DBGrid에 뿌리죠!
제가 생각해도 아주 무식한 방법입니다!
ClientDataSet1.Refresh를 하여도 Close, Open과는 속도는 별 차이가 없더군요!
이것 역시 현재 열려있는 모든 레코드를 Retrieve하는 것이니 말입죠!
그래서 ClientDataSet1과 연결된 DBGrid의 레코드가 선택되어 ClientDataSet2에서 수정한 후 화면이 닫기면 ClientDataSet1.Refresh도 아닌 Close, Open도 아닌 방금 수정된 현재의 레코드만 DBGrid에 나타나기만 하면 됩니다!
합계 같은 것은 First하여 EOF까지 계산하면 먹으니까 말이죠!
그래서 ClientDataSet1.Provider의 GetRecords 또는 ClientDataSet1.RefeshRecord등을 쓰려고 하는데 방법을 잘 모르겠어요!
아무래도 헛다리 짚은것 같기도 하구 해서 이렇게 Q합니다!
이 프로그램이 56K 전용선에서 사용될 것이기 때문에 매번 1년치 자료를 쿼리 하려고 한다면 끝장이죠! 그럴때 마다 Refresh만 하여도 시간이 엄청 걸리니까요!
가장 큰 목적은 하나입니다! 레코드의 Edit와 Insert는 DBGrid가 있는 화면이 아닌 다른 화면인데 거기서 다른 ClientDataSet으로 EDIT 및 Insert를 한후
원래의 ClientDataSet에서 수정된 해당 레코드만 보여줄 수 있다면 너무 좋겠습니다!
이상입니다!