当前位置: 代码迷 >> Sql Server >> (ADO)Parameters Delete Method 如何用
  详细解决方案

(ADO)Parameters Delete Method 如何用

热度:566   发布时间:2016-04-24 10:13:55.0
(ADO)Parameters Delete Method 怎么用


void CDBAdo::ClearAllParameters()  //清除所有参数  
{  
    try   
    {  
        long    lParamCount = m_ptrCommand->Parameters->Count;  
        if(lParamCount>0L)  
        {  
/*
for(int i=0;i<lParamCount; i++)
{
m_ptrCommand->GetParameters()->Delete((i));
}
*/
            for(long i=lParamCount; i>0; i--)  
            {  
                _variant_t  vtIndex;    
                vtIndex.intVal  =i;  
                m_ptrCommand->Parameters->Delete(vtIndex);  
            } 

        }  
    }  
    catch(_com_error& comError)  
    {  
        RecordErrorMsg(comError);  
dump_com_error(comError);
    }  


Parameters
Index
A String value that contains the name of the object you want to delete, or the object's ordinal position (index) in the collection.

CSDN给的说明是,需要传入名字字符串或者位置序数
名字字符串应该是CreateParameter 中的第一个参数,这样用起来通用性很差
我传位置进去,不知道为什么总是报错,说 项目中没有应该的对象什么的?

Parameters->Count;    应该是正确的,我得到了正确的参数6,但是就是delete 在消除参数的时候出错,求大家指导一下
------解决方案--------------------
参考: Problem with ADO _Command. CreateParameter in With ++

void CDBAdo::ClearAllParameters()  //清除所有参数
{
try
    {
        long lParamCount = m_ptrCommand->GetParameters()->GetCount();
        
        if(lParamCount>0L)
        {
         for (int i = lParamCount - 1; i >= 0; i--) 
         m_ptrCommand->GetParameters()->Delete((long)i);
        }
    }
    catch(_com_error& comError)
    {
     RecordErrorMsg(comError);
     dump_com_error(comError);
    }
}
  相关解决方案