델파이로 프로그램을 짜고 있는 군바리입니다.
먼저 말씀드릴 것은 저 말입니다. 이문제 해결 못하면 아마도 영창가야하지 않을까 하네요.영창이란 군대 깜빵을 말합니다.
질문내용은 델파이 3.0으로 3-tier DB를 만들고 있스니다. 지역 LAN으로 연결되는 20~30정도의 유저가 있고요..
remote data module을 이용해서 어플리케이션 서버를 NT에 등록 시켰고, 클라이언트(윈98)는 data module에
remote server 컴포넌트을놓고 computer name을 NT의 컴퓨터이름으로 썼습니다.
위 내용은 제가 이것 저것 참고 해서 하긴 했지만 이상은 없으리라고 봅니다.
그런데 문제는 클라이언트에서 프로그램을 실행시키면 서버에서 자동으로 프로그램이 뜬다고 했는데 도데체 반응이 없습니다.
에러메세지는 'olesyserror'나 'interface not surported'나 '서버실행에 실패 했습니다.'입니다.
어플리케이션 서버 프로그램의 컴퍼넌트는 export 시켜서 서버프로그램이 COM으로 등록이 되있고 원격 제어를 위해서
DCOMcnfg로 설정도 나름데로 맞춘것 같습니다. 그런데 결과적으로 되지가 안습니다.
이를 어찌하면 좋겠습니까?>
디비는 파라독스를 썼고, 윈98과 엔티를 씁니다.
꼭 알려주시기 바랍니다.........
매번 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에서 수정된 해당 레코드만 보여줄 수 있다면 너무 좋겠습니다!
이상입니다!