我编写的一个插入测试程序在运行时内存的使用量不停的增加,不插入数据就不会有这个问题,怎么回事,插入函数代码如下:
连接字符串:
LPCSTR ConnectString = "Provider=OraOLEDB.Oracle;Password=atm;User Id=atm;Data Source=atmmon";BOOL CDatabaseCtrl::InsertDataToBase(VIDEOIMGDATA &pVideoImage,_ConnectionPtr pConnect,BYTE *pBlobData)
{
try
{
m_Recordset->AddNew();
m_Recordset->Fields->GetItem(_variant_t("atm_id"))->Value = _bstr_t(pVideoImage.csAtmId);
m_Recordset->Fields->GetItem(_variant_t("video_time"))->Value = _bstr_t(pVideoImage.ctVideoTime.Format("%Y-%m-%d %H:%M:%S"));
m_Recordset->Fields->GetItem(_variant_t("channel"))->Value = _variant_t((short)pVideoImage.shChannel);
m_Recordset->Fields->GetItem(_variant_t("event_id"))->Value = _variant_t((long)pVideoImage.nEventId);
m_Recordset->Fields->GetItem(_variant_t("frame_id"))->Value = _variant_t((long)pVideoImage.nFrameId);
AppendImage("frame_data",pBlobData,m_iBufferLength);//插入BLOB数据
m_Recordset->Update();
}
catch(_com_error e)
{
// MessageBox(NULL,e.Description(),"",MB_ICONERROR);
YC_TRACE("Insert data Error:%s %s\n",e.ErrorMessage(),(LPCSTR)e.Description());
// m_Recordset->Close();
return FALSE;
}
return TRUE;
}
连接字符串:
LPCSTR ConnectString = "Provider=OraOLEDB.Oracle;Password=atm;User Id=atm;Data Source=atmmon";BOOL CDatabaseCtrl::InsertDataToBase(VIDEOIMGDATA &pVideoImage,_ConnectionPtr pConnect,BYTE *pBlobData)
{
try
{
m_Recordset->AddNew();
m_Recordset->Fields->GetItem(_variant_t("atm_id"))->Value = _bstr_t(pVideoImage.csAtmId);
m_Recordset->Fields->GetItem(_variant_t("video_time"))->Value = _bstr_t(pVideoImage.ctVideoTime.Format("%Y-%m-%d %H:%M:%S"));
m_Recordset->Fields->GetItem(_variant_t("channel"))->Value = _variant_t((short)pVideoImage.shChannel);
m_Recordset->Fields->GetItem(_variant_t("event_id"))->Value = _variant_t((long)pVideoImage.nEventId);
m_Recordset->Fields->GetItem(_variant_t("frame_id"))->Value = _variant_t((long)pVideoImage.nFrameId);
AppendImage("frame_data",pBlobData,m_iBufferLength);//插入BLOB数据
m_Recordset->Update();
}
catch(_com_error e)
{
// MessageBox(NULL,e.Description(),"",MB_ICONERROR);
YC_TRACE("Insert data Error:%s %s\n",e.ErrorMessage(),(LPCSTR)e.Description());
// m_Recordset->Close();
return FALSE;
}
return TRUE;
}
解决方案 »
- 分享自己的Oracle配置过程
- powerdesigner修改已有数据的oracle结构,总是报错,约束,视图,触发器,包都不好使
- 查看执行计划,sqlplus和pl/sql对同一sql语句执行计划差别很大
- 高分求最简单问题:
- 急呀~oracle问题!再线等,然后散分~
- 触发器支不支持事务?如果不支持怎么写?
- 太菜拉。。关于动态执行问题!
- 怎么样可以使 服务 下的 oracleora8imanagementsever自动启动?高手指点
- 如何通过SQL语句得到oracle中指定一个表的表结构,以及在哪些视图。存储过程中使用过?
- 查询中何为驱动表阿??请问这句话怎么理解啊?
- 急!怎样设计这些表呢?
- 有谁对ORACLE的用户表和日志文件的结构比较清楚一些?
我估计是不是你把大对象存入了记录集导致类存增加我对vc不是很在行,只能推测