테이블에 데이타를 입력할때,
데이타 베이스 엔진 에러가 나면... 에러가 보여 주는 것 까지는 되었는데...
에러가 보이고 나서... 그 테이블에 널값이 들어간답니다...
입력 에러가 났으면, 입력이 취소 되어야 하잖아여...
그런데 DataBaseDesktop로 테이블을 확인해 보면...
테이블에 빈 레코드가 입력되어 있더라구요....
부끄럽지만;;; 아래 소스를 올립니다...
뭐가 문제인지... 도와주세요...^^
procedure TF_Bank_info.BtnInsertClick(Sender: TObject);
begin
if EdtBankCode.Text='' then
begin
ShowMessage('은행코드를 입력하세요.');
exit;
end
else try
datamod.TblBank.Append;
Datamod.TblBank.FieldByName('BANKCODE').Asstring := EdtBankCode.Text;
datamod.TblBank.Post;
showMessage('저장 되었습니다.');
EdtBankCode.Text := '';
EdtBankname.Text := '';
except on E: EDBEngineError do
begin
if E.Errors[E.Errorcount - 1].ErrorCode = DBIERR_KEYVIOL then
ShowMessage('코드중복입니다.')
else
ShowMessage('입력오류입니다.');
datamod.TblBank.Cancel;
end;
else
begin
ShowMessage('입력오류입니다.');
datamod.TblBank.Cancel;
end;
end;
datamod.TblBank.Refresh;
end;
행복한 일주일 시작하세요~~~~~~~~~~~~~~~~~*
> 테이블에 데이타를 입력할때,
> 데이타 베이스 엔진 에러가 나면... 에러가 보여 주는 것 까지는 되었는데...
> 에러가 보이고 나서... 그 테이블에 널값이 들어간답니다...
> 입력 에러가 났으면, 입력이 취소 되어야 하잖아여...
> 그런데 DataBaseDesktop로 테이블을 확인해 보면...
> 테이블에 빈 레코드가 입력되어 있더라구요....
> 부끄럽지만;;; 아래 소스를 올립니다...
> 뭐가 문제인지... 도와주세요...^^
>
>
> procedure TF_Bank_info.BtnInsertClick(Sender: TObject);
> begin
> if EdtBankCode.Text='' then
> begin
> ShowMessage('은행코드를 입력하세요.');
> exit;
> end
> else try
> datamod.TblBank.Append;
> Datamod.TblBank.FieldByName('BANKCODE').Asstring := EdtBankCode.Text;
> datamod.TblBank.Post;
> showMessage('저장 되었습니다.');
> EdtBankCode.Text := '';
> EdtBankname.Text := '';
> except on E: EDBEngineError do
> begin
> if E.Errors[E.Errorcount - 1].ErrorCode = DBIERR_KEYVIOL then
> ShowMessage('코드중복입니다.')
> else
> ShowMessage('입력오류입니다.');
> datamod.TblBank.Cancel;
> end;
> else
> begin
> ShowMessage('입력오류입니다.');
> datamod.TblBank.Cancel;
> end;
> end;
> datamod.TblBank.Refresh;
> end;
>
> 행복한 일주일 시작하세요~~~~~~~~~~~~~~~~~*
DataBase의 commit, rollback 을 참고해 보세요