Q&A

  • sqlcode를 어떻게 사용해야 하나요??
Sql 실행후 리턴되는 SqlCode를 프로그램에서 사용할려면 어떻게 해야 하나요??



각 코드값마다 메세지를 부여할려고 하는데, EDataBaseError나 EIBError를 사용시



델파이에서 제공하는 메세지가 뜨고, error control이 되지 않는것 같습니다.



고수님들의 조언 부탁드립니다.

1  COMMENTS
  • Profile
    lspark 2000.07.22 19:47
    김대식 wrote:

    > Sql 실행후 리턴되는 SqlCode를 프로그램에서 사용할려면 어떻게 해야 하나요??

    >

    > 각 코드값마다 메세지를 부여할려고 하는데, EDataBaseError나 EIBError를 사용시

    >

    > 델파이에서 제공하는 메세지가 뜨고, error control이 되지 않는것 같습니다.

    >

    > 고수님들의 조언 부탁드립니다.







    ======== 저두 고수가 아닌디 답변해두 되나요 ? ============================



    !!!!! 제가쓰고있는 DB 관련 SOURCE CODE 입니다.

    도움이 되셨으면 좋겠습니다. 즐겁게 일 하세요.... !!!!!!!!!!!!!!!!!!!!





    sTemp := 'INSERT INTO TABLE_개똥이 ( SPEC, SPEC_NO, MAX_QTY ) VALUES ( '

    + ' '''+ SPEC.Text +''' '

    + ' , '''+ SPEC_NO.Text +''' '

    + ' , ' + FloatToStr(MAX_QTY.Value) + ' )';



    FRM_LOGIN.DB1.StartTransaction;



    cError := RUN_SQL(sTemp, 'DB1');



    If cError <> 0 Then Begin

    Frm_LOGIN.DB1.RollBack;

    If cError = 9729 Then Begin

    MSG.Caption := '이미 등록된 품목코드 입니다.';

    SPEC.SetFocus;

    Exit;

    End;

    MessageBox(self.handle,PChar(sMsg),'오류',MB_OK);

    SPEC.SetFocus;

    Exit;

    End;



    FRM_LOGIN.DB1.Commit;



    MSG.Caption := '등록이 완료 되었습니다.';



    //============================================================================//

    // SQL STATMENT 를 실행하고 DB CODE 를 RETURN 한다. (GENERAL EXEC SQL) //

    //============================================================================//

    Function RUN_SQL(const mSQL, DB_NAME : String) : Integer;

    Var

    TmpQuery : TQuery;

    Begin

    TmpQuery := TQuery.Create(Application);

    TmpQuery.DataBaseName := DB_NAME;

    TmpQuery.SQL.Text := Trim(mSQL);



    Try

    TmpQuery.ExecSQL;

    Result := 0;

    Except

    On E : EDBEngineError Do Begin

    Result := ErrorRoutine(E);

    sMsg := sMsg + #13 + #13 +mSQL;

    End;

    End;



    TmpQuery.Destroy;

    End;





    //============================================================================//

    // SQL 실행시 DB ErrorCode 와 Error Message Return //

    //============================================================================//

    Function ErrorRoutine(const E : EDBEngineError) :Integer;

    Begin

    sMsg := IntToStr(E.Errors[0].ErrorCode) + ' - '

    + IntToStr(E.Errors[0].NativeError) + ' : '

    + E.Errors[0].Message;

    Result := E.Errors[0].ErrorCode;

    MessageBeep(0);

    End;



    ======이상임다=====