山寨:不是最好的,是最适合我们的!欢迎体验山寨 中文版MSDN

Blog @ Blog

当华美的叶片落尽,生命的脉络才历历可见。 -- 聂鲁达

常用链接

统计

积分与排名

BBS

Blog

Web

最新评论

vc里如何调用存储过程

_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错误
!”);
}

posted on 2008-06-17 23:21 isabc 阅读(996) 评论(1)  编辑 收藏 引用 所属分类: 数据库

评论

# re: vc里如何调用存储过程 2008-06-17 23:24 isabc

http://topic.csdn.net/t/20060724/19/4901741.html VC中如何调用存储过程???急救!!!

http://www.poptool.net/software/p5/A5609.shtml vc怎样调用存储过程?

http://topic.csdn.net/t/20030925/15/2299494.html VC如何调用存储过程

http://www.80diy.com/home/20001129/10/43596.html 谁知道VC如何调用SQL Server 的存储过程?
  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


广告信息(免费广告联系)

中文版MSDN:
欢迎体验