////////////////////
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
- 테네시왈츠
항상 겸손하게 항상 새롭게 항상 진실하게