참고로 DB는 Oracle를 쓰고염.. 진짜루 뭐가 잘못됐나 모르겠네요..
로직은 이상없는것 같거든요.. 한번 실행하면 업데이트 되는것 같은데
다시 조회 하면 안돼 있어요 .. commit이 안먹어요..
그리고 아래 아래 글 리플 단 님대로 한칸씩 띄웠는데도 안되네요..
브래이크 걸어서 실행하면 제일 아래 if DM.IsOracle then DM.DB.Commit;
이 부분이 분명 걸치는데도 왜 commit 이 안되는건지..
고수님들 도와줘염..ㅠ.ㅠ
procedure TfrmProd_81.btnUpdateClick(Sender: TObject);
begin
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;
end;
if DM.IsOracle then DM.DB.Commit;
end;
if not DM.DB.inTransection then DM.DB.StartTranSaction;
일케 해보시져..^^
롤백은..
if DM.DB.inTransection then DM.DB.RollBack;
커밋은..
if DM.DB.inTransection then DM.DB.Commit;