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
[4427] [질문] 류님 감사.. 그러나.. (캐쉬 -> 하드로..)
casper98 [ ] 992 읽음    1998-09-08 21:56
대답에 감사함을 드리면서..

음.. 그때 당시 제가 제정신이 아니라서 제대로 표현을 못했더군요.
(이틀밤을 세고, 아침에 회사 출근시간에 임박해서 작성한 거라..
더구나, 터미날 프로그램은 win95의 telnet이었음.)

그럼.. 천천히 요지를 말씀 드리면요..
처음에는 프로그램의 업데이트 부분을 쿼리를 이용했었는데,
로컬에서는 쿼리보다 테이블 포스트가 속도가 빠르더군요.
(심한경우 약 10배 이상의 속도가 차이가 남)
그래서, 테이블에 인덱스 필드를 잡고, 쿼리를 포스트로
변경을 하였습니다.
다 변경후 실행을 해보니 아니... ?
포스트후 테이블 까지 닫았는데, 테이블 내용을 보니,
포스트 하기 전과 하나도 다르지 않더군요.
그래서, 여기 저기 돌아다녀 보니까..
DBiSaveChanges(Table1.Handle); 라는 함수를 사용하면 된다고 하더군요.
그래서, 이 함수를 포스트를 다 한 후에 테이블을 닫기 전에 한번 실행을
했습니다.
그리고, 테이블을 닫고 다시 내용을 보았는데도
여전히 내용이 바뀌지 않더군요.
얼핏 어딘가에서, 테이블 포스트를 하면, 캐쉬에 내용이 저장되고,
테이블을 닫는 순간 하드에 쓴다던데, 그게 아닌듯..
그래서, 확실히 저장을 하는 방법이 없나 해서요.
Table1.CommitUpdate는 정확한 사용법을 몰라서..

소스는 너무 길어 카피하기가 에매해서 그리고,
그 부분만 카피해서 올린다는 것도 이상하고 해서,
제가 기냥 대충 만들어 친겁니다.
하고자 하는 것은 골프에 대한 건데, 다음과 비슷합니다.

만약 학생들의 성적을 관리하는 프로그램에서
다음같은 일을 한다고 하면
Table1 // 학생테이블
Table2 // 과목및점수테이블

Table2에서 이번 기말고사에 대한것을 점수순, 학번순으로 쿼리해 옵니다.
그 결과에서 모든 과목의 총합과 A,B,C,D,F의 갯수 및 순위를
Table1의 그 학번의 레코드에 써넣습니다.
(위 작업을 Table1.FindKey([학번])와 Table1.post를 사용)
작업을 하고 나니, 어떤 학상이 컨닝을 한게 밝혀저, 그 시험을 안본걸로
체크를 하고, 순위를 다시 매깁니다.
(방식은 위와 비슷한데, 순위만 다시 메김)
그러구 나서 자료를 보면 처음에 순위를 매긴것과 똑같은 결과가 나오는 겁니다.
위의 작업들은 프로그램이 종료 되지 않은 상태에서 연이어 발생하는 겁니다.

이런 것을 이야기 하는 겁니다.

음. 이번에는 잘 설명이 된건지..

왜 인지는 모르지만, 쿼리로 할때는 문제가 없이 되었는데,
사용자가 속도가 너무 걸린다는 문제를 제기해서 바꾸었더니, 이런 문제가..
(팬티엄 200으로 약 1~2분걸림)

너무 길게 질문을..
아시면 꼭 도움을..
그럼..


+ -

관련 글 리스트
4427 [질문] 류님 감사.. 그러나.. (캐쉬 -> 하드로..) casper98 992 1998/09/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.