procedure Tah5D00_f.DeleteBitBtnClick(Sender: TObject);
begin
if MessageDlg(' 정말로 삭제 합니까.?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
try
Query3.Close;
Query3.SQL.Clear;
Query3.SQL.Add(' update milstk set ');
Query3.SQL.Add(' lstk_flag = ''0'', lstk_item = null, lstk_kubun = null, ');
Query3.SQL.Add(' lstk_igubn = null, lstk_stok = To_Number(''0''), ');
Query3.SQL.Add(' lstk_date = null, lstk_time = null ');
Query3.SQL.Add(' where lstk_loca = '''+locaMEdit.Text+''' ');
Query3.ExecSQL;
MesgStatusBar.SimpleText := 'MESG:삭제를 완료 하였습니다.!!';
except
on E : EDBEngineError do
if E.Errors[1].ErrorCode = 13059 then ShowMessage('기존에 삭제 되었습니다.!!')
else showmessage('Oracle DB Error.!!');
end;
end;
end;
이런식으로 코딩을 했는데 DB에 데이타들은 UPDATE가 됐는데,폼에 있는 에디트 박스에
있는 데이타들은 CLEAR 되지않고 그대로 있습니다.
왜 그런건가요...?
Edit는 DB랑 상관 없는 컴포넌트니까.. 항상 어떤 이벤트든 reset해줘야 하죠.
그거 비해서리..
dbEdit라면, dbEdite랑 db랑 연결 되어 있으니, db가 변하게 되면(실제론 DataSource가) 그때 그값을 표현하게 되죠,
그런데, 명령을 처리하는 query나 table이 딴 DataSource과 연결이 되어 있고, 보여지는 DataSource가 따로 있는 경우,(DataSource 이름은 다르지만 DB table이 같은 경우)에는 refresh 해줘야 확실하죠.
^^; 나무.. 임당...
xxx wrote:
> procedure Tah5D00_f.DeleteBitBtnClick(Sender: TObject);
> begin
> if MessageDlg(' 정말로 삭제 합니까.?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
> begin
> try
> Query3.Close;
> Query3.SQL.Clear;
> Query3.SQL.Add(' update milstk set ');
> Query3.SQL.Add(' lstk_flag = ''0'', lstk_item = null, lstk_kubun = null, ');
> Query3.SQL.Add(' lstk_igubn = null, lstk_stok = To_Number(''0''), ');
> Query3.SQL.Add(' lstk_date = null, lstk_time = null ');
> Query3.SQL.Add(' where lstk_loca = '''+locaMEdit.Text+''' ');
> Query3.ExecSQL;
>
> MesgStatusBar.SimpleText := 'MESG:삭제를 완료 하였습니다.!!';
> except
> on E : EDBEngineError do
> if E.Errors[1].ErrorCode = 13059 then ShowMessage('기존에 삭제 되었습니다.!!')
> else showmessage('Oracle DB Error.!!');
> end;
> end;
> end;
>
> 이런식으로 코딩을 했는데 DB에 데이타들은 UPDATE가 됐는데,폼에 있는 에디트 박스에
> 있는 데이타들은 CLEAR 되지않고 그대로 있습니다.
> 왜 그런건가요...?
>