Q&A

  • TTable에 대한 급하게 궁금한점 (답변 요청 합니다.)
안녕 하세요.
한델에서 여러번 도움을 받고 항상 소중한 공간으로 생각하는 초보 델파이 사용자 입니다.
급한 도움을 청합니다. 아시는 분은 꼭 좀 도움을 주세요..

제가 TTale를 써서 마스터-디테일 관계로 설정을 했습니다.
그래서 디테일 폼에서 자료를 Append를  합니다.

dbgrid 에서 바로 입력을 하는데 한로우를 입력하고 다음로우로 넘어가면
post를 하지 않아도 db에는 바로 저장이 되네요. 원래 그런가요.

제가 알기로는 Append나 insert 를 하고 post를 해야 작업했던 데이터가 저장이 되는 걸로 알고 있는데요.

이게 저한테 중요한 이유는요 데이터가 한줄씩 입력되면 상관이 없는데 여러줄입력될때도 있거든요.
그리고 작업자가 항상 올바를 데이터를 넣는 다는 보장이 없기 때문에 post를 해야 저장이 되게 하고 싶어서요.
만약 여러줄을 입력했는데 알고 보니 잘못된 데이터일때 cancel를 하면 원상태로 돌아가야 하는데 현재는 입력된 데이터가 post를 하지도 않았는데 바로 저장이 된다는 겁니다.

도움을 청합니다.
2  COMMENTS
  • Profile
    난 백만당적이다. 2005.02.07 20:06
    테이블은 단지 보여지는 기능만 하게 하구요...
    저장은 쿼리로 하면 문제가 해결될것같은데요....
    여러개의 문장이 입력될때 저장에 관한 문장을 실행하기 전에 우선 바로 입력이 되었는지 확인하고 하면
    별 문제가 없을것 같은디요


  • Profile
    무심코 2005.02.07 22:15
    첨에 델파이를 쓸때 저도 이부분에 대해서 무척 고민에 빠졌습니다.
    DataSource.AutoEdit 를 false 로 해놓고 해보기도 하고
    Query 에다가 UpdateSQL 컴포넌트를 연결해놓고 처리해보기도 하고

    AfterPost, BeforePost 등 각 이벤트에다가 에러체크등을 해놓고 했었지만
    정말 애로사항이 많더라구요!

    더구나 마스터, 디테일 관계라면 생각해주셔야 할것이 더 많을 겁니다.
    디테일 입력하다가 마스터쪽 데이타 이동이 생긴다던가 하는 경우....
    아님 그리드에 단순히 텍스트 위주가 아니고 코드 선택을 해야 하는 경우(물론 LookUp이 있지만 이것도 많이 쓰면 속도가 떨어져서...)
    그래서 웬만하면 그리드에서 바로 입력 처리 하는 구성은 소규모 프로젝트라면 몰라도
    (좀 되는 프로젝트면 UI 통일 성 땜시 곤란한것이 많아서...)

    저 같은 경우에는 스트링 그리드를 사용하던가
    입력 이나 수정 화면을 따로 만들어서 처리합니다.
    옛날에 고생하던 생각이 나서 답변이라기 보다는 제 경험만 쓴것 같아서 죄송합니다.
    • 신재민
    • 2005.02.13 09:59
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 히히
      2005.02.14 20:08
      Form에서 보면 KeyPreView가 있습니다. 이넘을 True 로 주면 키보드 Input을 Edit보다 Form의 KeyDown에서...
    • 깜장곰
    • 2005.02.13 02:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2005.02.14 21:26
      안녕하세요. 최용일입니다. 메인폼의 OnCreate이벤트에서 아래와 같이 해보세요... procedure TForm1...
    • 김상균
      2005.02.12 18:39
          TPanel((Sender as TImage32).Parent).Color := clActiveCaption;
    • 이중철
      2005.02.14 18:04
      지금 보면 ImgCenter의 Parent를 설정하지 않았네요 설정하지 않으면 (Sender as TImage32).Parent는 nil...
    • nilriri™
      2005.02.12 10:36
      '파일 다운로드' 라는 제목의 윈도우가 생성되는지 감시했다가 핸들값을 얻어다가...프로세스를kill하시면 ...
    • 송인화
    • 2005.02.12 05:15
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2005.02.12 09:15
      strText[1] => A strText[2] => B strText[3] => C 어떤것을 원하나요? for i := 1 to Leng...
    • 송인화
      2005.02.12 18:18
      답변 감사합니다. ^^ 즐거운 주말 보내세요~
    • 김종현
    • 2005.02.12 03:50
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2005.02.12 09:21
      select sum(수량) as 입고 ...... 만약 입고와 출고를 같이 나오게 할려면 상호 Outer join해야 하는데 ...
    • 김종현
      2005.02.12 21:45
      답변 고맙습니다. 죄송한데 제가 완전 초보라서 그러니 좀 자세하게 가르쳐주심 안될까요? 너무 막막...
    • nilriri™
      2005.02.14 21:46
      RDBMS가 오라클 8i이상이라면 쿼리 한번으로 합계 누계까지 가능할껍니다. 물론 다른 디비라도..union a...
    • 송인화
    • 2005.02.11 22:57
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 히히
      2005.02.11 23:49
      ClientSocket의 OnError 이벤트 핸들러를 다음과 같이..... procedure TForm1.ClientSocket1Error(Sende...
    • 송인화
      2005.02.12 02:16
      안녕 하세요.. 답변 감사 드립니다.. OnError 이벤트를 처리하니깐.. 알수가 있더군요.. 한가...
    • 채팅
      2005.02.12 14:52
      clientSocket은 NonBlocking소켓입니다. 그래서 일단 Open메소드를 부르면 연결이 성공하든 실패하든 다음...
    • 송인화
      2005.02.12 19:42
      안녕 하세요.. 답변 감사 드립니다... ClientSocket은 NonBlocking소켓이라구 하셨는데요.. &...
    • kivalan
    • 2005.02.11 22:55
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2005.02.14 08:03
      안녕하세요. 최용일입니다. WaveOutOpen (@FHandle,FDeviceID,FFmtChooser.WaveFormatEx,DWORD(@WaveOut...
    • kivalan
      2005.02.15 05:01
      계속 답변을 달아 주시는데 고맙고 죄송합니다. 잘 이해가 안가서요.. acmFormatChoose(fc) 넵 이 함수...
    • 최용일
      2005.02.15 17:55
      안녕하세요. 최용일입니다. 몇번 말씀을 드렸는데... 이해를 못하시네요... ㅠㅠ waveInOpen할때 필...
    • kivalan
      2005.02.16 04:40
      앗 이제애 이해를 했ㄴ요. waveInOpen 인자가 타입형포인터줄 알고 헷갈려 했습니다. TACMFormatChooser....
    • 남경만
    • 2005.02.11 17:52
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 남경만
      2005.02.13 02:50
      덕분에 쉽게 끝낼 수 있게 되었네요... ㅎㅎㅎ 저도 어여 질문만 하는 사람이 아니고.. 여러분처...
    • 강재규
      2005.02.12 20:35
      제일 간단한 방법인거 같아서 올립니다. Quickrep1의 Properties에 보시면 Page가 있어요... 거기에 Colu...
    • nilriri™
      2005.02.11 23:10
      기존에 하시던것처럼. 디자인을 하신다음에.. qrdbtext컴포넌트를 놓으시고 데이터셋과 필드명을 연결해...
    • kivalan
      2005.02.11 22:21
      젤 좋은 방법은 퀵레포트에서 다단 출력을 지원하는 것이겠지만요.(이부분은 좀 확인이 필요합니다). 간...
    • 김진태
    • 2005.02.10 07:15
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 델티즌
      2005.02.11 09:14
      자주 실수하는 부분이죠. 변수가 문자인 경우는 문자열이 아닌 문자로 취급해야 합니다. case &nb...
    • 김영미
      2005.06.01 21:01
      한참 헤메다가 답변하신 부분 참조합니다. 정말 감사합니다. 항상 행복하시길 빕니다.( __)꾸벅.
    • kivalan
      2005.02.11 05:33
      말그대로 Ordinal type required 순서적인 값을 가지고 있는 타입만 가능하네요. var abc: Char; begin ...
    • nilriri™
      2005.02.11 23:02
      indy 컴포넌트를 이용하시면 좀더 간단할거 같습니다. 꼭 웹브라우져 컨트롤을 사용하셔야 한다면 행...
    • 이재현
      2005.02.12 10:00
      우선 답변 감사드립니다. ^^; 그렇게 간단한거라면 질문을 올리지 않았죠.. ^^;; 자답 입니다.. ^^; ...
    • nilriri™
      2005.02.12 10:48
      그런 방법도 있었군요...^^; 감사합니다... 보통은 자신만 알고 넘어가버리기 쉬운데...힘들게 알아 내...
    • 박지용
      2005.02.11 19:56
      TThread.OnTerminate Even를 사용하시면 될 것 같네요...^^ 그럼.
    • 파멸의슬픔
      2005.02.11 21:03
      간단 예제 올려드려요... 보시구 하세엽 그럼 이만~
    • 김상균
    • 2005.02.08 04:22
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 난 백만당적이다.
      2005.02.08 01:02
      goEdit를 True로 한 다음 OnCanEditCell 이벤트에서 CanEdit 를 False로 하면 됩니다.  ...
    • 이소룡
    • 2005.02.07 17:48
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 델티즌
      2005.02.08 10:16
      2003에서 이상한 현상들이 많이 발생하고 있습니다. 꼭 델파이의 문제는 아니듯 싶습니다. 2003 서비스팩...
    • 김춘수
      2005.02.07 22:44
      2003에 사용하는데 전혀 이상무입니다. 델파이7, 5 모두 사용 혹시 델파이 원본이 이상한것 아닐까요 ...
    • 막심
    • 2005.02.07 07:49
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 난 백만당적이다.
      2005.02.07 20:06
      테이블은 단지 보여지는 기능만 하게 하구요... 저장은 쿼리로 하면 문제가 해결될것같은데요.... 여러개...
    • 무심코
      2005.02.07 22:15
      첨에 델파이를 쓸때 저도 이부분에 대해서 무척 고민에 빠졌습니다. DataSource.AutoEdit 를 false 로 해...