RECORDSET的GetRows方法返回_variant_t变量空间异常增大问题
在使用m_pRecordset获取数据的时候,原来已对SAFEARRAY数组分配了内存,但在跑到GETROWS一行的时候,内存又不断增加。此外,发觉GETROWS指令执行速度很慢,几万条记录就花了几分钟了,不知道问题在哪里呢,请各位帮忙看看。
m_pRecordset->Open(mStrSQL, m_pConnection.GetInterfacePtr(), adOpenKeyset, adLockReadOnly, adCmdText);//打开时的设置
......省略中间的一些代码
const dim = 2;//二维数组
SAFEARRAY* Saf;//安全数组
SAFEARRAYBOUND Bound[dim];
Bound[0].lLbound = 0;
Bound[0].cElements = ColCount;
Bound[1].lLbound = 0;
Bound[1].cElements = Recnum;
Saf = SafeArrayCreate(VT_VARIANT, dim, Bound);
_variant_t vartemp;
vartemp.vt = VT_ARRAY|VT_UI1;
vartemp.parray = Saf;
vartemp = m_pRecordset->GetRows(adGetRowsRest);//批量读取数据至_variant_t