您的位置:首页 > 其它

使用VC在ADO中访问存储过程的方法

2007-10-12 12:54 459 查看

void CADORecordset::AddNewFileNode(CString ShowName , char * ReallyName,long &Id,int root)




...{


_CommandPtr pIDCommand;


pIDCommand.CreateInstance(__uuidof(Command));




pIDCommand->ActiveConnection = m_pConnection;//连接字符串


pIDCommand->CommandText = "pr_AddNew";//存储过程名


pIDCommand->CommandType = adCmdStoredProc;//标记该操作为存储过程




_ParameterPtr m_pParam;




m_pParam = pIDCommand->CreateParameter("@reid",adInteger,adParamInputOutput,sizeof(int),0);//添加参数该参数为一个inputoutput类型的int参数


pIDCommand->Parameters->Append(m_pParam);




m_pParam = pIDCommand->CreateParameter("@ReallyName",adVarChar,adParamInputOutput,128,ReallyName); //添加参数该参数为一个inputoutput类型的VarChar(128)参数


pIDCommand->Parameters->Append(m_pParam);




m_pParam = pIDCommand->CreateParameter("@nodeid",adInteger,adParamInput,sizeof(int),root);// 该参数为input类型的int参数,参数的值在root中


pIDCommand->Parameters->Append(m_pParam);




m_pParam = pIDCommand->CreateParameter("@ShowName",adChar,adParamInput,ShowName.GetLength(),ShowName.GetBuffer(0)); //数为input类型的char,参数的值在,ShowName.GetBuffer(0)中,该用法要回收


ShowName.ReleaseBuffer();//回收


pIDCommand->Parameters->Append(m_pParam);




pIDCommand->Execute(NULL,NULL,adCmdStoredProc);//执行存储过程




Id = pIDCommand->Parameters->GetItem((long)0)->Value;//根据参数在参数表中的位置取值,当前参数是第一个,所以值为0


CString _reallyname= pIDCommand->Parameters->GetItem((long)1)->Value;




pIDCommand.Detach();//使用完毕后释放资源




sprintf(ReallyName,_reallyname.Trim().GetBuffer(0));


_reallyname.ReleaseBuffer();




……




return ;


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: