'020. Prigraming/02. C++'에 해당하는 글 1건

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

void CADOTestDlg::OnButtonGetField()
{
    // TODO: Add your control notification handler code here
    _RecordsetPtr  pRs = NULL;    
    _bstr_t        str_Query;
    _bstr_t        bstr_Field;
    HRESULT   hr = S_OK;
   
    int i_RecCount;
    int i = 0;
   
    str_Query = "EXEC USP_SELECT_PARENT";
    pRs.CreateInstance(__uuidof(Recordset));

    pRs->CursorLocation  = adUseClient;   
    hr = pRs->Open((_variant_t)str_Query,_variant_t((IDispatch *)pConnection,true), adOpenKeyset,adLockReadOnly, adCmdText);
   
    i_RecCount = pRs->RecordCount;                
       
   
    if(SUCCEEDED(hr))
    {
        for(i ;i < i_RecCount ;i++)        
        {
             
            bstr_Field = pRs->Fields->GetItem((LONG)0)->GetValue();
            TRACE("\n ID : %s",(LPCTSTR)bstr_Field);           

            bstr_Field = pRs->Fields->GetItem((LONG)1)->GetValue();
            TRACE("\n NAME : %s",(LPCTSTR)bstr_Field);           
  
            pRs->MoveNext();
        }
    }

   

    pRs->Close();   
}
/////////////////////////////////////////
 
아~~~
내 인생에도 C++의 흔적을 남겨야 하는가...
너무 싫다 C++ 누가 좀 도와도~~~ ㅠ.ㅠ

[출처] 데브피아
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=50&MAEULNo=20&no=240916&ref=240800

/* 요것도 참고 해 보자 */

예전에 ASP 에서 하던 코드를 대충 적용 했는데 작동은 잘 되는듯 합니다..
/////////////
_CommandPtr   pCmd = NULL;

pCmd.CreateInstance(__uuidof(Command));
pCmd->ActiveConnection = pConnection;
pCmd->CommandText = "UP_TEST";
pCmd->CommandType  = adCmdStoredProc;

//리턴값 파라미터  추가 합니다       
pCmd->Parameters->Append(pCmd->CreateParameter("return",adInteger,adParamReturnValue,4));
               
hr = pCmd->Execute(NULL,NULL,NULL);
 if(SUCCEEDED(hr))
{
        pCmd->GetParameters()->GetItem("return")->Value;  //-> 리턴값을 받아 옴...
  }       

//////////////////////
참고로  예전에 ASP 에서는 다음과 같이 했었음다...

 Set DBCmd = Server.CreateObject("ADODB.Command")
   with DBCmd
      .ActiveConnection  = DBcon
      .CommandType  = adCmdStoredProc
      .CommandText  = "cvl_sp_s_delschool"
      .Parameters.Append DBCmd.CreateParameter("return",adInteger ,adParamReturnValue ,4)                 
      .Parameters.Append DBCmd.CreateParameter("@UID",adChar , adParamInput ,10,USER_ID)
      .Parameters.Append DBCmd.CreateParameter("@Sch_cd",adChar , adParamInput,8,SCH_CODE)     
      .Parameters.Append DBCmd.CreateParameter("@re_msg",adVarChar,adParamOutput,50)               
      .Execute      
     i_return = .Parameters("return").Value
     s_msg =    .Parameters("@re_msg").Value   
     
   End with
  
  Set DBCmd = Nothing

위와 같이 하면 리턴값과 함께 아웃풋 파라미터로도 값을 받아 올수 있습니다... 
 
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=50&MAEULNo=20&no=233967&ref=233794


이왕 한 김에... C#에서도 저장프로시저 사용법 알아볼까?
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=17&MAEULNo=8&no=73596&ref=73596


WRITTEN BY
테네시왈츠
항상 겸손하게 항상 새롭게 항상 진실하게

,