none
DB2

    질문

  • 안녕하세요

    DB2 서버에 접속하고 있는데

    DB2에 연결은 잘 되는것 같은데

    아래 부분에서 에러 메세지를 띄우네요

    이유가 뭘까요?

     

    Hi

    Have access to the DB2 server and

    It seems that the connection to DB2

    In the bottom of the error message ttuiwooneyo

    Any ideas?

     

     

     

    /////////////////////////////////////////////////////////////////////////////////////////////////////

     // TODO: Add your control notification handler code here
     CCommand<CAccessor<C_VW_EMP_ENT_db>, CRowset, CNoMultipleResults> rs_VW_EMP_ENT_Data;
     
     CDBPropSet propset(DBPROPSET_ROWSET);
     USES_CONVERSION;           // "ANSI -> UNICODE"나 "UNICODE -> ANSI"로 변환하는 "MAGRO 함수"
     
     // Property를 추가하기 //
     propset =  CDBPropSet(DBPROPSET_ROWSET);
     propset.AddProperty(DBPROP_CANFETCHBACKWARDS, true);
     propset.AddProperty(DBPROP_IRowsetScroll, true);
     propset.AddProperty(DBPROP_IRowsetChange, true);
     propset.AddProperty(DBPROP_UPDATABILITY, DBPROPVAL_UP_CHANGE | DBPROPVAL_UP_INSERT | DBPROPVAL_UP_DELETE);

    // "DB2 Database"를 열기 //
     hr_ST = CoInitialize(NULL);
     if (FAILED(hr_ST))           
     {
      m_ds.Close();           
      CoUninitialize();          

      makeErrorMsg(hr_ST, "DB2의 초기화를 못했습니다.");
      AfxMessageBox(message);
      
      return;
     }

     dbStr.Format(_T("PROVIDER=IBMDADB2;DataBase=SPSPROD;HostName=165.244.98.163;Protocol=TCPIP;Port=51001;USER ID=sps_inf;Pwd=db2forever;Persist Security Info=True;"));


     hr_ST = m_ds.OpenFromInitializationString(T2COLE(dbStr));
     if (FAILED(hr_ST))            
     {
      m_ds.Close();            
      CoUninitialize();           

      makeErrorMsg(hr_ST, "DB2와 접속하는 데 실패했습니다.");
      AfxMessageBox(message);

      return;
     }

    // Session을 열기 //
     hr_ST = m_ss.Open(m_ds);
     if (FAILED(hr_ST))
     {
      m_ss.Close();            
      m_ds.Close();            
      CoUninitialize();          
      makeErrorMsg(hr_ST, "DB2의 쎄션을 여는 데 실패했습니다.");

      AfxMessageBox(message);
      return;
     }

     

     dbStr.Format(_T("SELECT ID, EMP_ID, EMP_NM, IDCARD_NO FROM ISOWN.VW_EMP_ENTRANCE WHERE IDCARD_NO = '%s'"), "0000005881252260");
     AfxMessageBox(dbStr);

     hr_ST = rs_VW_EMP_ENT_Data.Open(m_ss, dbStr, &propset);
     if (FAILED(hr_ST))    
     {
      m_ss.Close();            
      m_ds.Close();            
      CoUninitialize();           

      makeErrorMsg(hr_ST, "ISOWN.VW_EMP_ENTRANCE 억세서를 못 열었습니다."); // 에러 메세지를 띄웁니다. 에러 코드는 0X80040E21 입니다. DB는 DB2, 이유가 뭘까요? To bring up an error message. The error code is 0X80040E21. DB and DB2, Why is this?


      AfxMessageBox(message);
      return;
     }


     

     AfxMessageBox("DB2 SERVER OK!");
     
     rs_VW_EMP_ENT_Data.Close();            
     m_ss.Close();            
     m_ds.Close();             
     CoUninitialize();

     

    /////////////////////////////////////////////////////////////////////////////////////////////////////

     
     
    2010년 12월 13일 월요일 오전 10:15