请问各位高手,在VC中如何用ADO访问SQL中的存储过程,若答案正确马上给分,拜托拜托!!!

解决方案 »

  1.   

    用存储过程名替换open中的sql语句
      

  2.   

    CString ExecStoreProc(int id)
    {
    _CommandPtr cmd;
    cmd.CreateInstance("ADODB.Command");
    //id号
    _ParameterPtr pParamRk;
    pParamRk.CreateInstance("ADODB.Parameter");
    pParamRk->Name="job_id"; //存储过程的参数1
    pParamRk->Type=adInteger; //整型
    pParamRk->Size=2; //
    pParamRk->Direction=adParamInput;//表明是输入参数
    CString tstr;
    tstr.Format("%d",id);
    pParamRk->Value=_variant_t(tstr);//int->CString->_variant_t后赋值
    cmd->Parameters->Append(pParamRk);
    //返回值
    _ParameterPtr pParamOk;
    pParamOk.CreateInstance("ADODB.Parameter");
    pParamOk->Name="desc"; //参数2名称
    pParamOk->Type=adChar; //字符串
    pParamOk->Size=20; //大小为20个字节
    pParamOk->Direction=adParamOutput; //声明是输出参数
    cmd->Parameters->Append(pParamOk);
    //_variant_t TheValue = MySet->GetCollect("FIELD_1");  
    //CString sValue=(char*)_bstr_t(TheValue);  cmd->ActiveConnection = piConnection;
    cmd->CommandText="test"; //存储过程的名字
    cmd->CommandType=adCmdStoredProc;//表示为存储过程adCmdStoredProc
        //执行,获得结果
        cmd->Execute(NULL, NULL, adCmdStoredProc);
        //将值返回
    return (char*)_bstr_t(pParamOk->Value);
    }