안녕하세요? 초보 질문입니다.(지난 물음에 해결이 안되서요..T.T)
저는 그리드 상에 데이터를 자유롭게 기입하고, 수정하고, 하다가
최종적으로 저장 버튼을 누르면 현재 기입되어 있는 그리드 위의
여러 레코드 값들이 한번에 테이블로 저장 되기를 바라는데,
책을 찾아 보니 캐쉬 기능을 이용하라고 하더군요.
그런데, 그것은
레코드를 한줄 입력하고 케쉬에 저장하고,
다시 레코드를 입력하고 케쉬에 저장하고 (그것도 하드에 저장하고..)
최종적으로 입력이 완료되면
또다른 저장버튼에 .ApplyUpdates를 이용하여
케쉬의 데이터를 데이터 베이스서버에 저장하도록
하라고 하더군요.(여기서도 잘 모르겠는데요, 케시에 내용이 저장 될때는 현재값이 한 레코드씩만 저장 되나요? 아니면, 그리드에 있는 변경된 후의 모든 내용을 다시 저장 시키는 것인가요?)
저는 이런 방법이 좀 어색해서 그런지 너무 복잡하게 느껴집니다.
물론, 나중에 프로그램을 사용하는 유저도 불편할 것 같구요.
엑셀아시잖아요? 엑셀에서 처럼 내용을 입력한 후 저장하면 여러 행의 값들이
한번에 저장 되지 않습니까? 그렇게 하고 싶은 거죠.
한 레코드마다 케쉬에 저장했다가 나중에 케쉬를 옮겨서 저장한다는 것이
좀 그렇습니다. (제 생각에는 사용자들이 편리하도록 프로그램밍 해 주어야 하니까요.)
어떤 ERP패키지프로그램을 보니 이렇게 그리드에 여러 값들을 입력하거나,
수정한 후에도 저장 버튼을 누르면 한번에 저장이 되더라구요..
하나의 구매 요청번호에 여러 구매물품들을 써 넣고 한번에 저장 하는 거죠.
제가 만들려는 폼도 구매 요청서인데요,
폼 윗부분에 구매요청 번호와 기타 정보를 입력받게 하고
폼 중간 쯤에는 그리드를 위치시켜 놓아서
사용자들이 구매하려는 내용을 엑셀에서 처럼 자유롭게 입력한 후,
저장 버튼을 누르면 구매 요청서 테이블에 저장 되게 하려는 것입니다.
때론 잘못된 내용이 발생할테니 다시 불러와서 그리드 상에서 Data를
수정도 하다가 다시 저장 버튼 누르면 변경된 값이 새롭게 저장 되게 하려는 것입니다.
제가 하려는 것이 가능할지 어떨지라도 판단해 주시면 감사하겠습니다
아예 이런 방법으로는 구현이 불가능한지 어떤지....
단순히 DBgrid로 구현하는 것이
가능하지 않다면 다른 방법을 찾거나(폼을 다시 구상하거나)
불편하더라도 앞서 책에서 설명한 것처럼 케쉬를 이용할 수 밖에 없잖아요?
예를 들자면
그리드의 레코드를 처음부터 읽어들여 카운터하면서
테이블에 저장한다든지하는....(이것두 되는지 어떤지는 모르겠슴다..)
아니면 비슷한 경우
어떤 방식으로 푸는 것이 좋다든지...하는등의..
많은 조언 부탁드립니다.( 초보는 오늘도 책만 뒤적거리구 있슴다. -진도를 못나아감 ..흑흑흑)
한줄의 레코드를 나타내는게 아니라는 말씀이지요..캐쉬에 저장 한다는건
입력, 변경(삭제도 포함)된 모든 상태를 캐쉬에 가지고 있는 다는 뜻이지요...
그래서 applyupdate해주면 이정보가 디비에 반영이 되는것이구요..(저장된다는 뜻은 아닙니다.)
그 다음 commit를 날려주면 저장이 되는것이지요..님이 캐쉬에 담은 정보를
신경쓸 필요는 없구요..다른 저장 버턴이라던지 이런건 필요 없습니다.
저장 버턴안에..
위에와 같은 방법으로(사용자가 원할떄만 ApplyUpdate -> Commit) 하는 방
법으로 하심 됩니다..당근 updatesql 컴퍼넌트는 연결 하셨지요??
그래도 정모르시면 헬프에서 commit라고 찾아보세요. 예제가 있거든요..
똑같이 따라 하셔도 될꺼 같네염//