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

C++빌더 Q&A
C++Builder Programming Q&A
[9100] Re:Re:[질문]DBGrid 에서 키보드입력하면 고쳐지지않습니다
백상열 [] 994 읽음    2001-07-18 15:47
thomamin 님이 쓰신 글 :
: 백상열 님이 쓰신 글 :
: : Table1 하고 DBGrid1, DataSource1 하고 이렇게 연결했습니다.
: :
: : 그리고는 대부분을
: : Table1->FieldByName("Number")->Value = 1111;
: : 이렇게 입력,수정,그리고 삭제를 하도록 했습니다.
: : 물론 이렇게는 잘되는것도, 그리고 DBGrid로도 잘나오는것까지 확인했습니다.
: :
: : 그런데, 문제는 그 이외 DBGrid 에서도 키보드입력하면 데이타가 수정되어야하는데,
: : 데이타가 고쳐지지않습니다. 어떻게해야 되나요 ?
: :
: : 참고로..
: : Table의 CachedUpdates와 AutoRefresh, AutoCalcFields 는 모두 true로 해두었구요..
: : Table의 ReadOnly 도 false 해두었습니다.
: :
: : 또 DataSource의 AutoEdit에도 true로 해두었습니다.
: :
:
: 흠...
: 이 글만 읽고는 어떤 증상인지 잘 모르겠는데요... 제 짐작으로는 '화면에는 입력이 되는데
: 실제 DB를 다시 읽어보면 값이 안바뀌어있다'라는 말씀이신거 같은데. CachedUpdate를 사용하실 때는
: ApplyUpdate와 Commit을 적용해주셔야 실제 DB의 값이 바뀌게 됩니다.

우선 감사하단말씀 먼저드립니다.
힌트주신대로 캐시부분에 촞점을 맞추어 시도해본결과..
Table1의 CachedUpdates를 false로 해두고 키보드로 DBGrid내용을 고치니깐 데이타가 즉시즉시
바뀌네요..
그래서 지금까지 사용하던 캐시를 프로그램상에서 사용않도록 프로그램상에서도
true를 false로 바꾼후 코드상에서 Table1->CommitUpdates();를 모두 제거하였습니다.

그래서 프로그램상에서나 키보드입력이나 모두 잘되는거 확인했습니다.
내용이 바뀌어도 db파일의 날짜와 시간이 바뀌지않는것은 아마도컴퓨터자체의 케시때문으로
추측이되지만 좀더 연구해볼 여지가있습니다.

thomamin님 감사합니다. 그럼..

+ -

관련 글 리스트
9081 [질문]DBGrid 에서 키보드입력하면 고쳐지지않습니다 백상열 846 2001/07/17
9083     Re:[질문]DBGrid 에서 키보드입력하면 고쳐지지않습니다 thomamin 971 2001/07/18
9100         Re:Re:[질문]DBGrid 에서 키보드입력하면 고쳐지지않습니다 백상열 994 2001/07/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.