ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • fnFieldByName
    C++ Builder/예제소스 2019. 4. 26. 10:05

    //---------------------------------------------------------------------------

    void __fastcall TTempleF::fnCallTempleId()

    {

    TadReqQuery *pReqQry;

    UnicodeString sSql;


    try{

    pReqQry = new TadReqQuery(m_pAppInfo->MQMgr);

    pReqQry->JobID     = 6600;

    // enum TadDBJobType     {djtSelect, djtInsert, djtUpdate, djtDelete, djtCancel, djtClear, djtInsertArray, djtTransaction};

    pReqQry->JobType   = djtSelect;

    // enum TadDBQueryType   {dqtExecute, dqtOpen};

    pReqQry->QueryType = dqtOpen;

    pReqQry->SQLFile   = GetCurrentDir() + "\\Sql\\A1.sql"; // sql파일 경로 지정


    pReqQry->FixedSession = false;

    pReqQry->NeedResponse = true;


    sSql.sprintf(L"SELECT MAX(SITE_ID) FROM M_SITE");


    pReqQry->Variables->fnSetSQLVarByName("A1", sSql);



    pReqQry->fnSetFormHandle(Handle);

    pReqQry->fnSendRequest(m_pAppInfo->DBPM);       // 데이터 요청

    }catch(Exception &E){

    fnWriteAppStatus(L"fnCallTempleId\r\n" + E.Message);

    }

    }

    //---------------------------------------------------------------------------

    void __fastcall TTempleF::fnProcDBResponse(TMessage a_stMsg)

    {

    UnicodeString sErrorLog;

    TadResQuery *pResQry;

    pResQry = (TadResQuery*)a_stMsg.WParam;


    try{

    // enum TadDBResult      {drFail, drSuccess, drUnknown};

    if(pResQry->Result == drSuccess){                       // sql파일 경로가 잘못 되어있을 경우 drFail

    if(pResQry->JobID == 6900){

    fnCheckTempleId(pResQry);

    }else if(pResQry->JobID == 6600){

    fnLoadTempleId(pResQry);

    }

    }else{

    sErrorLog  = "DB Result Error !! \r\n";

    sErrorLog += "==> Error Code : " + pResQry->ErrorCode + L"\r\n";

    sErrorLog += "==> Error Kind : " + IntToStr(pResQry->ErrorKind) + L"\r\n";

    sErrorLog += "==> Error Msg  : " + pResQry->ErrorMsg + L"\r\n";

    sErrorLog += "==> Error Msg  : " + pResQry->SQLText  + L"\r\n";

    sErrorLog += "DESCRIPTION : " + pResQry->Params->fnGetParamByNameStr("DESCRIPTION");

    fnWriteFileLog(sErrorLog);

    }

    delete pResQry;

    }catch(Exception &E){

    fnWriteAppStatus(L"ProcDBResponse\r\n" + E.Message);

    }

    }

    //---------------------------------------------------------------------------

    void __fastcall TTempleF::fnLoadTempleId(TadResQuery *a_pResQry)

    {

    UnicodeString sTempleId;

    sTempleId = a_pResQry->fnFieldByName(L"MAX(SITE_ID)")->AsString;        //  Sql 문에서 SELECT 뒤에 선언한 칼럼(MAX포함)

    sTempleId.Delete(1,1);

    sTempleId = StrToInt(sTempleId) + 1;

    edId->Text = L"T"+sTempleId;

    edId->ReadOnly = true;

    }

    728x90

    'C++ Builder > 예제소스' 카테고리의 다른 글

    SQL구문  (0) 2019.08.13
    FindComponent  (0) 2019.04.29
    ExportGridToExcel  (0) 2019.04.18
    윈도우 창 이동(BoderStyle = bsNone)  (0) 2019.02.26
    종료확인  (0) 2019.01.31

    댓글

Designed by Tistory.