|
Update 시키기 전에 북마크를 설정하고
TBookmark SavePlace;
SavePlace = DBGrid->DataSource->DataSet->GetBookmark();
DataSet을 Close시키세요.
DBGrid->DataSource->DataSet->Close();
그리고 Update를 하세요.
Update 하실때는 DBGrid->DataSource->DataSet 을 사용하지 마시고
다른 DataSet을 만들어서 사용하세요.
다시 DataSet을 Open시키세요.
DBGrid->DataSource->DataSet->Open();
그리고 북마크로 이동하세요.
DBGrid->DataSource->DataSet->GotoBookmark(SavePlace);
마지막으로 북마크를 삭제하시면 되겠슴당.
DBGrid->DataSource->DataSet->FreeBookmark(SavePlace);
이방법이 좋을듯 싶군요.
북마크는 사용하지 않아도 되지만,
사용하지 않으면 DBGrid의 데이터를 스크롤 한상태에서
Close 한 후 다시 Open하면 DBGrid의 데이터가 스크롤 했던 위치에 있지 않습니다.
원하시는 답이면 좋겠군요.. 이상 V6였습니당.
강요찬 님이 쓰신 글 :
: ================ 소스코드 =================================
:
: 사용 디비 : 제트엔진의 엑세스 데이터베이스
: 폼 연결상태 : DBGrid1->DataSource1->ADOQuery1 또는
: DBGrid1->DataSource1->ADOTable1
:
: ===========================================================
:
: 테이블과 DBGrid는 서로 실시간으로 연결되어 있는 상황입니다.
:
: 1. [Insert 버튼](또는 [Update 버튼])이 있어, 이 버튼을 누를 경우 새로운 레코드를 하나 추가(또는 수정)합니다.
: ADOQuery1 일 경우 : Insert Into ...;
: Update ....;
: ADOTable1 일 경우 : ADOTable1->Append(); ...; ADOTable1->Post();
: ADOTable1->Edit(); ...; ADOTable1->Post();
:
: 2. DBGrid 에 추가(또는 수정)된 레코드의 변화가 바로 나타나게 하고 싶습니다.
:
:
: 어떻게 해야 변화된 레코드를 바로 DBGrid 에 나타낼 수 있는지요?
: 일반 DBase 4나 Paradox 테이블을 TTable로 DBGrid에 연결해서 추가(수정)을 하게 되면 DBGrid 에 바로 그 변화가 나타나는데... 위의 조건하에서는 아무리 해도 그 변화가 바로 나타나지를 않으니...
:
: 여러 고수님 도움 바랍니다.
: 감사합니다.
:
|