Windows/MFC
Stored procedure (ado type)
aucd29
2013. 10. 2. 18:07
// 팁이라고 할것까지 있을런지...
// C++에서 ADO를 이용한 Stored Procedure 사용법.
// 객체 해제는 기술하지 않음.
void TestStoredProc()
{
try{
// 객체 생성
_RecordsetPtr recordset;
_CommandPtr cmd;
_ConnectionPtr connection;
connection.CreateInstance(__uuidof(Connection));
recordset.CreateInstance(__uuidof(Recordset));
cmd.CreateInstance(__uuidof(Command));
// 커넥션 객체 오픈
connection->ConnectionTimeOut=10;
connection->open("provider=...",NULL,NULL,adOptionUnspecified);
// 커맨트 객체 초기화
cmd->CommandType=adCmdStoredProc;
cmd->CommandText=_bstr_t("spBeginJob");
cmd->ActiveConnection=connection;
// 저장프로시져의 리턴 값 및 파라메터값을 지정함.
_ParameterPtr paramRet=cmd->CreateParameter("return",adInteger,adParamReturnValue,sizeof(int)) ;
_ParameterPtr paramInput=cmd->CreateParameter("@inputData",adChar,adParamInput,4) ;
// adParamInput에 해당하는 파라메터에 입력 값 대입
ptr1->Value=_variant_t("Test");
// 파라미터값을 command객체에 추가( returnValue를 처음에 append해야 함.)
cmd->Parameters->Append(paramRet);
cmd->Parameters->Append(paramInput);
// 명령실행
recordset=cmd->Execute(NULL,NULL,adCmdStoredProc);
// Return값 읽어 옴. 방법#1
_variant_t retData(paramRet->Value);
// Return값 읽어 옴. 방법#2
cmd->Parameters->GetItem("ret")->Value;
}catch(_com_error &e){
//에러처리
}
}
// C++에서 ADO를 이용한 Stored Procedure 사용법.
// 객체 해제는 기술하지 않음.
void TestStoredProc()
{
try{
// 객체 생성
_RecordsetPtr recordset;
_CommandPtr cmd;
_ConnectionPtr connection;
connection.CreateInstance(__uuidof(Connection));
recordset.CreateInstance(__uuidof(Recordset));
cmd.CreateInstance(__uuidof(Command));
// 커넥션 객체 오픈
connection->ConnectionTimeOut=10;
connection->open("provider=...",NULL,NULL,adOptionUnspecified);
// 커맨트 객체 초기화
cmd->CommandType=adCmdStoredProc;
cmd->CommandText=_bstr_t("spBeginJob");
cmd->ActiveConnection=connection;
// 저장프로시져의 리턴 값 및 파라메터값을 지정함.
_ParameterPtr paramRet=cmd->CreateParameter("return",adInteger,adParamReturnValue,sizeof(int)) ;
_ParameterPtr paramInput=cmd->CreateParameter("@inputData",adChar,adParamInput,4) ;
// adParamInput에 해당하는 파라메터에 입력 값 대입
ptr1->Value=_variant_t("Test");
// 파라미터값을 command객체에 추가( returnValue를 처음에 append해야 함.)
cmd->Parameters->Append(paramRet);
cmd->Parameters->Append(paramInput);
// 명령실행
recordset=cmd->Execute(NULL,NULL,adCmdStoredProc);
// Return값 읽어 옴. 방법#1
_variant_t retData(paramRet->Value);
// Return값 읽어 옴. 방법#2
cmd->Parameters->GetItem("ret")->Value;
}catch(_com_error &e){
//에러처리
}
}