void ado::ExecuteProc( int BillID, int SNID, int Key, CString Way, int IsPass, int DayPassQty,CString ProjectNo )
{
try
{
_CommandPtr cmd;
cmd.CreateInstance("ADODB.Command");
//@BillID
_ParameterPtr pParamBillID;
pParamBillID.CreateInstance("ADODB.Parameter");
pParamBillID->Name="BillID"; //存储过程的参数1
pParamBillID->Type=adInteger; //整型
pParamBillID->Size=20; //
pParamBillID->Direction=adParamInput;//表明是输入参数
CString m_BillID;
m_BillID.Format(_T("%d"),BillID);
pParamBillID->Value=_variant_t(m_BillID);//int->CString->_variant_t后赋值
cmd->Parameters->Append(pParamBillID);
//@SNID
_ParameterPtr pParamSNID;
pParamSNID.CreateInstance("ADODB.Parameter");
pParamSNID->Name="SNID"; //存储过程的参数3
pParamSNID->Type=adInteger; //整型
pParamSNID->Size=20; //
pParamSNID->Direction=adParamInput;//表明是输入参数
CString m_SNID;
m_SNID.Format(_T("%d"),SNID);
pParamSNID->Value=_variant_t(m_SNID);//int->CString->_variant_t后赋值
cmd->Parameters->Append(pParamSNID);
//@Key
_ParameterPtr pParamKey;
pParamKey.CreateInstance("ADODB.Parameter");
pParamKey->Name="Key"; //存储过程的参数3
pParamKey->Type=adInteger; //整型
pParamKey->Size=20; //
pParamKey->Direction=adParamInput;//表明是输入参数
CString m_key;
m_key.Format(_T("%d"),0);
pParamKey->Value=_variant_t(m_key);//int->CString->_variant_t后赋值
cmd->Parameters->Append(pParamKey);
//@Way
_ParameterPtr pParamWay;
pParamWay.CreateInstance("ADODB.Parameter");
pParamWay->Name="Way"; //存储过程的参数2
pParamWay->Type=adVarChar; //整型
pParamWay->Size=50; //
pParamWay->Direction=adParamInput;//表明是输入参数
pParamWay->Value=_variant_t(Way);//int->CString->_variant_t后赋值
cmd->Parameters->Append(pParamWay);
//@ProjectNo
_ParameterPtr pProjectNo;
pProjectNo.CreateInstance("ADODB.Parameter");
pProjectNo->Name="Way"; //存储过程的参数2
pProjectNo->Type=adVarChar; //整型
pProjectNo->Size=50; //
pProjectNo->Direction=adParamInput;//表明是输入参数
pProjectNo->Value=_variant_t(ProjectNo);//int->CString->_variant_t后赋值
cmd->Parameters->Append(pProjectNo);
//@IsPass
_ParameterPtr pParamIsPass;
pParamIsPass.CreateInstance("ADODB.Parameter");
pParamIsPass->Name="IsPass"; //存储过程的参数3
pParamIsPass->Type=adInteger; //整型
pParamIsPass->Size=20; //
pParamIsPass->Direction=adParamInput;//表明是输入参数
CString IsPass;
IsPass.Format(_T("%d"),1);
pParamIsPass->Value=_variant_t(IsPass);//int->CString->_variant_t后赋值
cmd->Parameters->Append(pParamIsPass);
//@DayPassQty
_ParameterPtr pParamQty;
pParamQty.CreateInstance("ADODB.Parameter");
pParamQty->Name="Way"; //存储过程的参数2
pParamQty->Type=adVarChar; //整型
pParamQty->Size=50; //
pParamQty->Direction=adParamInput;//表明是输入参数
CString Qty;
Qty.Format("%d",DayPassQty);
pParamQty->Value=_variant_t(Qty);//int->CString->_variant_t后赋值
cmd->Parameters->Append(pParamQty);
_ParameterPtr pParamRemark;
pParamRemark.CreateInstance(“ADODB.Parameter”);
pParamRemark->Name=“Reamrk”; //工序Id
pParamRemark->Type=adVarChar; //字符类型
pParamRemark->Size=50; //
pParamRemark->Direction=adParamOutput;//表明是输入参数
cmd->Parameters->Append(pParamRemark);
_ParameterPtr pResultCode;
pResultCode.CreateInstance(“ADODB.Parameter”);
pResultCode->Name=“ResultCode”; //存储过程的参数3
pResultCode->Type=adInteger; //整型
pResultCode->Size=4; //
pResultCode->Direction=adParamInput;//表明是输入参数
CString m_keyValue;
m_keyValue.Format(_T("%d"),ResultCode);
pResultCode->Value=_variant_t(m_keyValue); //int->CString->_variant_t后赋值
cmd->Parameters->Append(pResultCode);
cmd->ActiveConnection = pConnection; // 连接对象
cmd->CommandText="P_Board2"; //存储过程的名字
cmd->CommandType=adCmdStoredProc;//表示为存储过程adCmdStoredProc
//执行,获得结果
cmd->Execute(NULL, NULL, adCmdStoredProc);
// 获取输出参数
CString strRet = (const char*)(_bstr_t)cmd->Parameters->GetItem("Reamrk")->GetValue();
int nRet = cmd->Parameters->GetItem("ResultCode")->GetValue();
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
}