안녕하세요... ^^
Table에 Data를 입력할때, 여러가지 제약조건이 따르 잖아요...
예를 들어.. 어떤 field에는 유일한 값만을 입력해야하고, 어떤field는 숫자만 입력 받을 수 있고, 어떤 field에는 문자만 입력 받을 수 있고... 등등 이런것들 말이예요...
그래서... Table에 입력하는 입력 버튼을 눌렀을때 발생하는 에러들을 메세지로 보여 주고 싶은데...
구체적으로 어떤 필드값의 입력데이타가 틀렸다는 것 까진 아니지만...
procedure TForm1.Button1Click(Sender: TObject);
begin
with dm.Table1 do
begin try
Post;
except on E: EDBEngineError do
begin
if E.Errors[E.Errorcount - 1].ErrorCode = DBIERR_KEYVIOL then
ShowMessage('코드중복입니다.')
else
ShowMessage('입력오류입니다.');
Cancel;
end;
else
begin
ShowMessage('입력오류입니다.');
Cancel;
end;
end;
end;
end;
이렇게 해서... 입력 오류라는 메세지만 뿌릴 수 있게 해봤거든요...
(겨우 겨우 여기저기 찾아 보구 알아낸 소스랍니다^^;;;)
그런데... 문제는... ('입력 오류입니다')라는 메세지가 보여 지기 전에...
델파이 프로그램 실행 에러가 난다는 것이지요!_!
그래서 실행중인 프로그램이 멈추고 [Project Project1.exe raised exception class EDBEngineError with message 'Key violation.',Process stopped. Use Step or Run to continue.] 이런 에러 메세지가 뜬 후에.. 다시 실행 버튼을 누르면 재실행이 되면서,(코드 중복오류입니다)라는 제가 만든 메세지가 보인다는 것이예요...
에러 메세지를 유도하기 위해 일부러 에러를 낸것이지만, 프로그램이 멈추지 않고 계속 실행 되면서 에러 메세지를 보여 줄 수 있는 방법은 없는 것인가요? !_!
(아... 항상 제가 제대로 질문을 하고 있는 건지... 제일 걱정스럽습니다...=_=)
그리고, EDBEngineError코드(ex.ErrorCode = DBIERR_KEYVIOL)나 그에 대한 더 자세한 것을 알고 계신 분, 그런 정보가 어디에 있다는 것 알고 계시면... 좀 가르쳐 주세요...^^
제가 초보라서 그런지... 사용자들에게 구체적으로 "어떤 필드값의 입력이 틀려서... Table에 입력할 수 없다."라는 자세한 에러 메세지를 뿌려 주고 싶거든요... ^^
책에도... 자세하게 Error코드는 나와있지 않더라구요...
꼬오옥... 부탁 드릴께요...
참고로 저는 지금 부끄럽지만^^;;;delphi4로 오라클DB에 접속해서 데이타를 처리하는 프로그램을 제작중입니다^^
*p.s:바람에 날씨가 무지 쌀쌀하네요...
옷따뜻하게 입고 외출하세요...^^
그럼... 항상 건강하시고 행복하시길...^^
-어제 하루 종일 DBERROR때문에 속썩은 매경이가...-
들었습니다. 그리고나서 발생하는 사용자 error 메세지를 뿌려주죠
아마 delphi에서 말고 실행파일을 바로 실행하면 사용자 error메세지만 뿌려지겠지요..
김매경 wrote:
> 안녕하세요... ^^
>
> Table에 Data를 입력할때, 여러가지 제약조건이 따르 잖아요...
>
> 예를 들어.. 어떤 field에는 유일한 값만을 입력해야하고, 어떤field는 숫자만 입력 받을 수 있고, 어떤 field에는 문자만 입력 받을 수 있고... 등등 이런것들 말이예요...
>
> 그래서... Table에 입력하는 입력 버튼을 눌렀을때 발생하는 에러들을 메세지로 보여 주고 싶은데...
>
> 구체적으로 어떤 필드값의 입력데이타가 틀렸다는 것 까진 아니지만...
>
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> with dm.Table1 do
> begin try
> Post;
> except on E: EDBEngineError do
> begin
> if E.Errors[E.Errorcount - 1].ErrorCode = DBIERR_KEYVIOL then
> ShowMessage('코드중복입니다.')
> else
> ShowMessage('입력오류입니다.');
> Cancel;
> end;
> else
> begin
> ShowMessage('입력오류입니다.');
> Cancel;
> end;
> end;
> end;
> end;
>
> 이렇게 해서... 입력 오류라는 메세지만 뿌릴 수 있게 해봤거든요...
> (겨우 겨우 여기저기 찾아 보구 알아낸 소스랍니다^^;;;)
>
> 그런데... 문제는... ('입력 오류입니다')라는 메세지가 보여 지기 전에...
>
> 델파이 프로그램 실행 에러가 난다는 것이지요!_!
> 그래서 실행중인 프로그램이 멈추고 [Project Project1.exe raised exception class EDBEngineError with message 'Key violation.',Process stopped. Use Step or Run to continue.] 이런 에러 메세지가 뜬 후에.. 다시 실행 버튼을 누르면 재실행이 되면서,(코드 중복오류입니다)라는 제가 만든 메세지가 보인다는 것이예요...
>
> 에러 메세지를 유도하기 위해 일부러 에러를 낸것이지만, 프로그램이 멈추지 않고 계속 실행 되면서 에러 메세지를 보여 줄 수 있는 방법은 없는 것인가요? !_!
> (아... 항상 제가 제대로 질문을 하고 있는 건지... 제일 걱정스럽습니다...=_=)
>
> 그리고, EDBEngineError코드(ex.ErrorCode = DBIERR_KEYVIOL)나 그에 대한 더 자세한 것을 알고 계신 분, 그런 정보가 어디에 있다는 것 알고 계시면... 좀 가르쳐 주세요...^^
> 제가 초보라서 그런지... 사용자들에게 구체적으로 "어떤 필드값의 입력이 틀려서... Table에 입력할 수 없다."라는 자세한 에러 메세지를 뿌려 주고 싶거든요... ^^
>
> 책에도... 자세하게 Error코드는 나와있지 않더라구요...
>
> 꼬오옥... 부탁 드릴께요...
>
> 참고로 저는 지금 부끄럽지만^^;;;delphi4로 오라클DB에 접속해서 데이타를 처리하는 프로그램을 제작중입니다^^
>
>
> *p.s:바람에 날씨가 무지 쌀쌀하네요...
> 옷따뜻하게 입고 외출하세요...^^
> 그럼... 항상 건강하시고 행복하시길...^^
>
>
>
>
>
> -어제 하루 종일 DBERROR때문에 속썩은 매경이가...-