您的位置:首页 > 理论基础 > 计算机网络

vc中调用存储过程!(转)

2008-12-30 16:33 288 查看
 _ConnectionPtr m_pConnection;


_CommandPtr m_pCommand;


//.cpp中在函数中执行


//建立ado连接


HRESULT hr;


hr=m_pConnection.CreateInstance(__uuidof(Connection));


try






{


    if(SUCCEEDED(hr))




    

{


        hr=m_pConnection->Open(_bstr_t(L"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Viper;Data Source=Viper"),_bstr_t (L"sa"),_bstr_t (L""),adModeUnknown);


    }


}


catch(_com_error & err)






{


    AfxMessageBox(err.Description(),MB_OK,0);


    AfxMessageBox(err.ErrorMessage(),MB_OK,0);


    AfxMessageBox("无法连接SQL SERVER 服务器,程序将退出。请检查网络设备",MB_OK,0);


    exit(0);


}




//执行储存过程


CString cvar1,cvar2;


int cvar3;


cvar1=”ddd”;


cvar2=”";


cvar3=0;


try






{


    m_pCommand.CreateInstance(__uuidof(Command));


    m_pCommand->ActiveConnection=app->m_pConnection;


    m_pCommand->CommandType=adCmdStoredProc;


    m_pCommand->CommandText=_bstr_t(”pr_zs_dzdy”);


    


    _variant_t vvar1,vvar2,vvar3;


    vvar1=_variant_t(_bstr_t(cvar1));


    vvar2=_variant_t(_bstr_t(cvar2));


    vvar3=_variant_t(cvar3);


    _ParameterPtr mp_var1,mp_var2,mp_var3;


    mp_var1.CreateInstance(__uuidof(Parameter));


    mp_var2.CreateInstance(__uuidof(Parameter));


    mp_var3.CreateInstance(__uuidof(Parameter));


    


    mp_var1=m_pCommand->CreateParameter


        (


        _bstr_t(”var1″),


        adVarChar,


        adParamInput,


        3,


        vvar1


        );


    m_pCommand->Parameters->Append(mp_var1);


    


    mp_var2=m_pCommand->CreateParameter


        (


        _bstr_t(”var2″),


        adVarChar,


        adParamOutput,


        3,


        vvar2


        );


    m_pCommand->Parameters->Append(mp_var2);


    


    mp_var3=m_pCommand->CreateParameter


        (


        _bstr_t(”var3″),


        adIntger,


        adParamOutput,


        9,


        vvar3


        );


    m_pCommand->Parameters->Append(mp_var3);


    


    _variant_t vNull;


    vNull.vt=VT_ERROR;


    vNull.scode=DISP_E_PARAMNOTFOUND;


    m_pCommand->Execute(&vNull,&vNull,adCmdStoredProc);


    cvar2=mp_var2->Value.bstrVal;


    cvar3=mp_var3->Value;


}


catch(_com_error &error)






{


    MessageBox(error.ErrorMessage(),”ADO错误!”);


    MessageBox(error.Description(),”ADO错误!”);


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