调用带输出参数ADO的内存泄露问题

xinchan 2008-04-16 11:27:28
BOOL DBModeDeal::Get_BSRINFO(NSRINFO* m2nsrinfo)
{ //调用存储过程//1217等待填充和修改

_ParameterPtr para[3];
_CommandPtr pCmd;
_bstr_t storeproc("p_getNsrjbxxFromMk2ToWsbs");//p_getNsrjbxxFromMk2ToWsbs
_variant_t var,var1;
int index = 0;
try
{
pCmd.CreateInstance(__uuidof(Command));
para[0].CreateInstance("ADODB.Parameter");
para[1].CreateInstance("ADODB.Parameter");
para[2].CreateInstance("ADODB.Parameter");

pCmd->ActiveConnection=m_M2pConn;
pCmd->CommandText=storeproc;

SetPara(para[0],pCmd,"YHSBH1",m2nsrinfo->sNSRSBH,adBSTR,adParamInput,100,var);//纳税人识别号

SetPara(para[1],pCmd,"SWJG_DM1","",adVarChar,adParamOutput,100,var);//字符串型输出参数,结果

SetPara(para[2],pCmd,"YHMC1","",adVarChar,adParamOutput,300,var1);//字符串型输出参数,名称


pCmd->Execute( NULL, NULL, adCmdStoredProc);
var=pCmd->Parameters->GetItem("SWJG_DM1")->GetValue();//通过参数返回值
m2nsrinfo->sSWJG_DM = GetVaule(var);

var1=pCmd->Parameters->GetItem("YHMC1")->GetValue();//通过参数返回值
m2nsrinfo->sYHMC = GetVaule(var1);

pCmd.Detach();
return TRUE;
}
catch (_com_error e) {
const TCHAR* pError=e.ErrorMessage();
// AfxMessageBox(pError);
return FALSE;
}
return TRUE;

}

其中
void DBModeDeal::SetPara(_ParameterPtr para,_CommandPtr pCmd, CString NodeName,CString NodeValue,DataTypeEnum ParaType,ParameterDirectionEnum ParaIoType,int CharLen,_variant_t var)
{
int index=0;
if (ParaIoType == adParamInput)//输入参数
{
para=pCmd->CreateParameter(_bstr_t(NodeName), ParaType,ParaIoType,
sizeof(NodeValue),_variant_t(NodeValue)); //字符串型输入参数,
pCmd->Parameters->Append(para);

}
if (ParaIoType == adParamOutput)//输出参数
{
var.Clear();
var = (short)index;
para=pCmd->CreateParameter(_bstr_t(NodeName), ParaType,ParaIoType,
sizeof(char[50]),var); //字符串型输出参数,错误信息
pCmd->Parameters->Append(para);
}
}
为何调用完成后内存增长却不降低呢,程序长时间运行后虚拟内存就增长的比较大,大虾救我。
...全文
95 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinchan 2008-04-16
  • 打赏
  • 举报
回复
拜托,大虾,我现在就这么多分数啊,再有的话我就加分
scq2099yt 2008-04-16
  • 打赏
  • 举报
回复
up

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧