欢迎光临 Rick 's BLOG
日志首页  | C# .Net编程  | 原创作品  | 生活点滴  | C\C++相关  | 多媒体相关※ERMP  | VB相关  | 其它运维与编程  |  留言簿
C语言中可变参数的用法 VC常用代码收集
晴天  VC中使用ADO调用存储过程
[ 发布日期:20年前 (2005-04-24) ]   [ 来自:本站原创 ] [分类:C\C++相关]
[复制到剪贴板]


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

 


引用通告地址 (0):
复制引用地址https://www.rickw.cn/trackback/76
复制引用地址https://www.rickw.cn/trackback/76/GBK
[本日志由 rick 于 20年前 (2005-04-24) 编辑]
[ 分类:C\C++相关  | 查看:1802 ]

暂时没有评论,快来发表一个评论吧。
发表评论
作者:   用户:[访客] 
评论:

表  情
禁止表情 | 禁止UBB | 禁止图片 | 识别链接
对不起,你没有权限上传附件!
验证:
 
PoweredBy R-Blog V1.00 © 2004-2024 WWW.RICKW.CN, Processed in second(s) , 7 queries    京ICP备17058477号-5