Q&A

  • commit 이 안돼여..
// 참고로 db는 oracle를 쓰고요.. 에러는 안나는데 commit이 안먹네염 ..
로직상엔 문제가 없는듯 한데 뭐가 잘못된건가요...
아래 내용을 실행 시키면 업데이트와 삭제가 되다가
다시 조회하면 업데이트와 삭제가 안돼 있어여... 뭐가 문제죠..?
고수님들 제발 도와주세요...ㅠ.ㅠ
제일 아래 commit 이 안되는것 같은데 .//아거///

procedure TfrmProd_81.btnDeleteClick(Sender: TObject);
begin
   if MessageDlg('삭제 하시겠습니까?',mtConfirmation, [mbYes, mbNo], 0) = mrNo then exit;

  Screen.Cursor := crHourglass;
  if DM.IsOracle then DM.DB.StartTranSaction;
  with DM.Query2 do begin
    Close;
    SQL.Clear;
    SQL.Add('UPDATE T_QTY');
    SQL.Add('SET CHULDATE = null,');
    SQL.Add('CHULTIME = null');
    SQL.Add('WHERE FACTORY = :WFACTORY');
    SQL.Add('AND   HOGI    = :WHOGI');
    SQL.Add('AND   PRDATE  = :WPRDATE');
    SQL.Add('AND   SEQ     = :WSEQ');

    ParamByName('WFACTORY').AsString := Trim(Copy(cboSaup.Text,1,6));
    ParamByName('WHOGI').AsString    := Trim(Copy(cboHogi.Text,1,6));
    ParamByName('WPRDATE').AsString  := FormatDateTime('yyyymmdd',dtpYmd.Date);
    ParamByName('WSEQ').AsString     := mskSeq.Text;
    try
      DM.Query2.ExecSql;
    except
      on Err : EDatabaseError do  {저장실패}
        begin
          if DM.IsOracle then DM.DB.Rollback;
          ShowMessage(Err.Message);
          DM.Query2.Close;
          Screen.Cursor := crArrow;
          Exit;
        end;
    end;
    Close;
    SQL.Clear;
    SQL.Add('DELETE FROM P_QTY');
    SQL.Add('WHERE QTY_FACTORY = :WFACTORY');
    SQL.Add('AND   QTY_HOGI    = :WHOGI');
    SQL.Add('AND   QTY_PRDATE  = :WPRDATE');
    SQL.Add('AND   QTY_SEQ     = :WSEQ');
    SQL.Add('AND   QTY_CSNTIME IS NULL');

    ParamByName('WFACTORY').AsString := Trim(Copy(cboSaup.Text,1,6));
    ParamByName('WHOGI').AsString    := Trim(Copy(cboHogi.Text,1,6));
    ParamByName('WPRDATE').AsString  := FormatDateTime('yyyymmdd',dtpYmd.Date);
    ParamByName('WSEQ').AsString     := mskSeq.Text;
    try
      DM.Query2.ExecSql;
    except
      on Err : EDatabaseError do  {저장실패}
        begin
          if DM.IsOracle then DM.DB.Rollback;
          ShowMessage(Err.Message);
          DM.Query2.Close;
          Screen.Cursor := crArrow;
          edtJaejoNo.SetFocus;
          edtJaejoNo.SelectAll;
          Exit;
        end;
    end;
  end;
  if DM.IsOracle then DM.DB.Commit;
  Screen.Cursor := crArrow;
  btnSearchClick(Self);
end;
2  COMMENTS
  • Profile
    단현석 2002.07.25 18:47
    SQL 문 삽입이 잘못되어 그런 것으로 집작 됩니다.

    전에 이런 경우가 있어.. 저는 아예 처음 코딩시 부터 이렇게 하는데..

    예로 님의 코드 중에서..

        SQL.Add('WHERE FACTORY = :WFACTORY');
        SQL.Add('AND   HOGI    = :WHOGI');

    와 같은 코드의 경우 SQL 문이
    WHERE FACTORY = :WFACTORYAND HOGI = :WHOGI    
                                                    ↑ 붙어버림..

    이렇게 생성되어 날라가는 것으로 알고 있습니다. 실제로 전 그렇게 문제를

    해결한 적이 있구여.

    그러니까 SQL.Add 시 처음과 끝에 꼭 공백을 삽입하셔야 할 겁니다.
        SQL.Add(' WHERE FACTORY = :WFACTORY ');
                       ↑                                             ↑
    와 같이 말입니다.

    그럼 도움이 되었으면 좋겠네욤. 즐프염~


  • Profile
    KDDG_ZZOM 2002.07.25 18:47
    우선 if DM.IsOracle then DM.DB.Commit; 이문이 실행되는지 확인해봐야겠네요...
    글구 확인되면 업데이트문이나 딜리트문에 맞는 조건이 있는지도 확인해봐야겠고요...
    코딩상으로는 될것같은데...

    • 김기연
    • 2002.07.25 07:19
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 단현석
      2002.07.25 18:47
      SQL 문 삽입이 잘못되어 그런 것으로 집작 됩니다. 전에 이런 경우가 있어.. 저는 아예 처음 코딩시 부...
    • KDDG_ZZOM
      2002.07.25 18:47
      우선 if DM.IsOracle then DM.DB.Commit; 이문이 실행되는지 확인해봐야겠네요... 글구 확인되면 업데이트...
    • 나옹이
    • 2002.07.25 05:13
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 한원희
      2002.07.25 06:05
    • 나옹이
      2002.07.25 08:30
    • 한원희
      2002.07.25 08:47
    • 나옹이
      2002.07.25 20:06
    • 한원희
      2002.07.25 20:16
    • 전희조
    • 2002.07.25 03:32
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 단현석
      2002.07.25 03:37
      이런 경우 대부분 스레드에서 문제가 되는 것이라고 생각합니다. 제 생각에는 생성된 스레드가 죽지 않...
    • 전희조
      2002.07.25 04:24
      먼저 답변 감사합니다. 스레드는 죽이지 않습니다. 프로그램을 종료할때까지 죽이지 않습니다. 스레드를...
    • 단현석
      2002.07.25 03:34
      그렇게 많은 방법이 있지는 않을 것 같습니다.. 제 생각에.. 칼크필드를 저장하려고 하는 것이 문제인데...
    • 장덕곤
    • 2002.07.25 01:48
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 한원희
      2002.07.25 04:42
      코딩으로 바꾸시려면, 간단하게, test.dpr 소스를 편집기로 읽어 들인 후에, Program test; 이 부분을...
    • 장덕곤
      2002.07.25 19:14
      한원희님.. 감사합니다... 다음에 또 궁금한게 있으면 부탁해도 되죠?^^ 제가 아직초보라서요...
    • 홍성락
      2002.07.25 01:06
      hsr/////////////////////////////////////////////////////////////// 아래처럼 전체나 특적 칼럼,열에 ...
    • 수서니
      2002.07.25 04:18
      먼저 감사합니다요~ DBGrid1.colwidths[3]:=100; 일케 했더니 에러가 나는군요, Undeclared ident...
    • 임형호
      2002.07.25 04:44
      에러의 내용은 colwidths 라는 속성이 존재하지 않는다는 말입니다. 즉..잘못기입했다는 얘기지요. DBGri...
    • 홍성락
      2002.07.25 04:22
      hsr/////////////////////////////////////////////////////////////// 아래처럼 전체나 특적 칼럼,열에 ...
    • 수서니
      2002.07.25 19:32
      아~ 글쿠낭... ㅋㅋ 감사 감사요~~ 아주 잘 되네용... ㅎㅎㅎ
    • ji
    • 2002.07.24 23:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이현철
      2002.07.25 04:29
      우선 인디컴포넌트팩의 Sample 소스를 보시면 알수 있습니다,. 그리고 TIdUDPServer 컴포넌트 이벤트에 ...
    • 김동욱
    • 2002.07.24 23:24
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 양상훈
      2002.07.25 04:01
      //Checked 상태를 리턴하는 함수 Function TForm1.GetCheckState(hItem:HTREEITEM):Boolean; const &nbs...
    • 홍성락
      2002.07.25 22:31
    • 개미
    • 2002.07.24 23:23
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 성더기
      2002.07.26 23:55
      클라이언트의 Access가 2000이상이면 접속안되는 걸로 알고 있습니다 ODBC로 바께 안될듯.. 참고하시길.....
    • 개미
      2002.07.27 19:46
      답변 무지 감사드립니다. 고수님들에겐 별일 아니지만 저같은 초보는 많은 도움이 됩니다. 그리구, 결...
    • 나옹이
    • 2002.07.24 23:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 서영택
      2006.02.07 04:27
      oraquery1.Active:=true; --> oraquery1.SQL.Open;
    • 수서니
    • 2002.07.24 22:44
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 임형호
      2002.07.25 04:52
      구냥 ... 생각나는건... QRLabel.Caption:='출력할내용'+#13+'출력할내용' 하면 되거든요. 그럼 두줄로...
    • 이영동
      2002.07.25 20:46
      고정 ip가 없다면 이렇게 한번 해보세요.. 제가 사용을 해봤는데 동작이 잘 되더라고요.. 유도ip를 ...
    • 이현철
      2002.07.25 04:39
      맞습니다. 서버만이라도 고정ip를 사용해야 합니다. 메신저를 개발중이시라면, 메신저 클라이언트가 처...
    • 나옹이
    • 2002.07.24 22:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이추형
      2002.07.24 22:30
      제가 보기에는 UPDATESql 컴포넌트를 않쓰신것 같습니다. Query컴포와 UPDATESql 컴포 연결시켜주신후 입...
    • 홍성락
      2002.07.25 00:52
      hsr//////////////////////////////////////// 여기 팁에서 '델파이에서 한글 조합과 분리'라는 제목을 찾...
    • 이현철
      2002.07.25 04:55
      보통 대부분의 컴포넌트들이 그렇겠지만, 델파이 기본 컴포넌트와 똑같은 컴포넌트들은 거의 없다고 생각...
    • 허진
    • 2002.07.24 20:34
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이추형
      2002.07.24 22:41
      SAMPLE입니다. 도움이 되셨으면 좋겠네여....전에 저두 헤맸던 기억이... type // 메인 이벤트 PENTRe...
    • 허진
      2002.07.26 01:18
      답변 감사합니다. 그런데 잘.. 이해가.. 안가는 부분들이 있네요. 책찾아가며.. 열심히.. 보고 있습...