m_DBCommand有Parameters集合,通过集合可以按照名称访问各个参数,为参数赋值,然后调用Execute

解决方案 »

  1.   

    另外,Command对象的连接是连到sql数据库,应该可以指定已经在数据库的存储过程的名称,然后设置活动连接,这样,Command应该就可以自己加载参数,不需要CreateParameter,在VB中这样使用没有问题,但VC中,我没有试,你可以试试看
      

  2.   

    你的意思是直接通过对m_DBCommand有Parameters集合访问,进行赋值
      

  3.   

    是啊,赋值在VB可以直接使用等号,在VC应该使用接口函数
      

  4.   

    应该差不多是这样,你试试看
    void Test()
    {
    _CommandPtr cmd;
    cmd.CreateInstance(__uuidof(Command));
    cmd->PutCommandType(CommandTypeEnum::adCmdStoredProc);
    cmd->put_CommandText(_bstr_t("aProc"));
    cmd->PutActiveConnection(_variant_t(cnt));
    TRACE("Param count:%d\n",cmd->Parameters->GetCount());
    cmd->Parameters->Item[_bstr_t("pName")]->Value=_variant_t(theValue);
    _variant_t aff;
    ...
    cmd->Execute(&aff,NULL,-1);
    }
      

  5.   

    j加个语句:void Test()
    {
    _CommandPtr cmd;
    cmd.CreateInstance(__uuidof(Command));
    cmd->PutCommandType(CommandTypeEnum::adCmdStoredProc);
    cmd->put_CommandText(_bstr_t("aProc"));
    cmd->PutActiveConnection(_variant_t(cnt));
    cmd->Parameters->Refresh(); TRACE("Param count:%d\n",cmd->Parameters->GetCount());
    cmd->Parameters->Item[_bstr_t("pName")]->Value=_variant_t(theValue);
    _variant_t aff;
    ...
    cmd->Execute(&aff,NULL,-1);
    }