Q&A

  • 테이블에 데이타를 입력할때...
테이블에 데이타를 입력할때,



데이타 베이스 엔진 에러가 나면... 에러가 보여 주는 것 까지는 되었는데...



에러가 보이고 나서... 그 테이블에 널값이 들어간답니다...



입력 에러가 났으면, 입력이 취소 되어야 하잖아여...



그런데 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;





행복한 일주일 시작하세요~~~~~~~~~~~~~~~~~*



1  COMMENTS
  • Profile
    김영대 1999.12.13 20:24
    김매경 wrote:

    > 테이블에 데이타를 입력할때,

    > 데이타 베이스 엔진 에러가 나면... 에러가 보여 주는 것 까지는 되었는데...

    > 에러가 보이고 나서... 그 테이블에 널값이 들어간답니다...

    > 입력 에러가 났으면, 입력이 취소 되어야 하잖아여...

    > 그런데 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 을 참고해 보세요