티스토리 뷰


 

// 팁이라고 할것까지 있을런지...

// 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/c++ 간단 토글링  (0) 2007.05.22
XmlLite SDK 관련..  (0) 2007.04.12
도서물 도착!!  (0) 2007.04.09
H.264 white paper(intel)  (0) 2007.04.02
MFC COM 클라이언트 애플리케이션에서 "서버 작업 중" 메세지 박스 처리법  (0) 2007.04.01
댓글