==================================声明==================================
本文原创,转载在正文中显要的注明作者和出处,并保证文章的完整性。
未经作者同意请勿修改(包括本声明),保留法律追究的权利。
未经作者同意请勿用于出版、印刷或学术引用。
本文不定期修正完善,为保证内容正确,建议移步原文处阅读。
本文链接:http://www.cnblogs.com/wlsandwho/p/4367798.html
=======================================================================
同一个_CommandPtr执行不同参数的存储过程
按照手册(见本系列参考资料)上说的:
Delete 方法(ADO Parameters 集合)
从 Parameters 集合中删除对象。
语法
Parameters.Delete Index
参数
Index String 值,包含要删除的对象的名称,或者对象在集合中的序号位置(索引)。
说明
使用集合的 Delete 方法可删除此集合中的一个对象。此方法只能用在 Command 对象的 Parameters 集合上。在调用 Delete 方法时必须使用 Parameter 对象的 Name 属性或其集合索引——对象变量是无效参数。
我尝试了下
1 gpParam1=gpCmd->CreateParameter(TEXT("ID"),adInteger,adParamInput,sizeof(int));
2 gpParam1->Value=_variant_t(6);
3 gpCmd->Parameters->Append(gpParam1);
4
5 gpCmd->Execute(NULL,NULL,adCmdStoredProc);//执行只有1个参数的存储过程
6
7 ...
8
9 gpCmd->Parameters->Delete(_variant_t(TEXT("ID")));
10 gpCmd->CommandText=TEXT("proc_heheda");//不带参数的存储过程
11
12 gpCmd->Execute(NULL,NULL,adCmdStoredProc);
成功。
=======================================================================
但是,我总感觉还是用同一个_ConnectionPtr配合不同的_CommandPtr用起来方便点呢?
毕竟每次删除参数都很麻烦。