我用下面的代码来更新整块数据: VARIANT varBLOB;
// ------------------- append the data-block -----------------------
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = nLen ;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
LPBYTE lpNextBuf = pData ;
for (long i = 0; i < nLen ; i++)
SafeArrayPutElement (psa, &i, lpNextBuf++);
varBLOB.vt = VT_ARRAY | VT_UI1;
varBLOB.parray = psa;
pRecordset->GetFields()->GetItem((LPCTSTR) strBlock)->AppendChunk(varBLOB);
if (SafeArrayDestroy(psa )!=S_OK )
ASSERT(FALSE ) ;
// -------------------
pRecordset->Update();追加数据的数据是怎样的?谢谢。
// ------------------- append the data-block -----------------------
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = nLen ;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
LPBYTE lpNextBuf = pData ;
for (long i = 0; i < nLen ; i++)
SafeArrayPutElement (psa, &i, lpNextBuf++);
varBLOB.vt = VT_ARRAY | VT_UI1;
varBLOB.parray = psa;
pRecordset->GetFields()->GetItem((LPCTSTR) strBlock)->AppendChunk(varBLOB);
if (SafeArrayDestroy(psa )!=S_OK )
ASSERT(FALSE ) ;
// -------------------
pRecordset->Update();追加数据的数据是怎样的?谢谢。
如果要将数据追加到一个字段然后在当前记录中设置或读取其他字段的值,ADO 会认为已完成向第一个字段追加数据。
如果在第一个字段上再次调用 AppendChunk 方法,ADO 将把这次调用解释为新的 AppendChunk 操作并覆盖现有数据。可以连续调用AppendChunk把不同的安全数组里的数据,存在一个字段上