Q&A

  • 레코드 삭제시 예외처리를 하려합니다.
안녕하세요. 배스메니아 조덕진입니다.

델파이 초보라 모르는게 많아 이렇게 도움을 청합니다.



레코드 삭제시 예외처리를 하려고 합니다.



A 테이블의 값 중 기본키는 B 테이블의 참조키로 설정되어 있는 상태입니다.

A 테이블의 값을 삭제할 경우 'KeyViolation' 오류가 발생하는데

try...exception 처리를 하여 해결은 했으나, 이와 관련한 오류메세지를

표시하고 싶습니다.



Q&A 를 찾아서 비슷한 내용을 확인하여, 일부 오류에 대해서는 작업을 했으나,

'KeyViolation'에 관한 부분은 작업을 하지 못했습니다.



이와 관련한 도움을 기다리고 있습니다.



그럼.

2  COMMENTS
  • Profile
    델피언 2000.09.22 22:21
    안녕하세요..델피언입니다.

    제가 쓰는 방법을 일단 알려 드립니다.

    그런데 원하시는 답이 아닐수도 있으니 참고하세요..



    Table 사용시

    var

    FError : PChar ;

    begin

    try

    //필요한 문장들...

    Table1.Post ;

    except on E: EDBEngineError do begin

    GetMem(bError , 1024) ;

    DbiGetErrorString(DBIERR_KEYVIOL, FError) ;

    if E.Errors[0].Message = FError then

    ShowMessage('데이터가 중복 되었습니다.') ;

    FreeMem( FError ) ;

    end ;

    end ;

    TQuery 사용시



    with Query1 do begin

    try

    //필요한 문장들...

    execSQL ;

    except on E: EDBEngineError do begin

    if pos('Key violation', E.Errors[0].Message) > 0 then

    ShowMessage('동일한 자료가 있습니다.') ;

    end ;

    end ;

    이것 말고 코드값으로 비교하는 것도 있습니다.

    그건 잘 생각이 안나서 일단 이것만 올려 드립니다.

    행복하세요..



    bassmania wrote:

    > 안녕하세요. 배스메니아 조덕진입니다.

    > 델파이 초보라 모르는게 많아 이렇게 도움을 청합니다.

    >

    > 레코드 삭제시 예외처리를 하려고 합니다.

    >

    > A 테이블의 값 중 기본키는 B 테이블의 참조키로 설정되어 있는 상태입니다.

    > A 테이블의 값을 삭제할 경우 'KeyViolation' 오류가 발생하는데

    > try...exception 처리를 하여 해결은 했으나, 이와 관련한 오류메세지를

    > 표시하고 싶습니다.

    >

    > Q&A 를 찾아서 비슷한 내용을 확인하여, 일부 오류에 대해서는 작업을 했으나,

    > 'KeyViolation'에 관한 부분은 작업을 하지 못했습니다.

    >

    > 이와 관련한 도움을 기다리고 있습니다.

    >

    > 그럼.

  • Profile
    bassmania 2000.09.22 23:52
    안녕하세요. 배스메니아 조덕진입니다.

    님께서 알려주신 방법으로 해결을 하였습니다.

    혼자서 개발을 전담하다보니 실력도 없는 사람이 고생이 많네요.

    덕분에 한시름 놓고 다른 작업을 할 수 있게 되었습니다.

    감사합니다.

    그럼.