职工管理系统VC++6.0
发布网友
发布时间:2022-05-09 21:26
我来回答
共2个回答
热心网友
时间:2023-10-22 05:03
我来给你解释一下,其实这是一个很简单的,安全数组创建初始化代码。
创建安全数组需要3个参数,参数1 是类型,参数2是结构体个数(第3个参数),参数3是数组结构的范围。
rgsabound[0].lLbound = 0; // 最小值
rgsabound[0].cElements = m_nFileLen // 最大值;
// 上面这两句就是设置结构体的范围是,从0~~文件长度,也就是所谓的图片文件的大小
psa = SafeArrayCreate(VT_UI1, 1, rgsabound); // 创建一个安全数组
for (long i = 0; i < (long)m_nFileLen; i++)
SafeArrayPutElement (psa, &i, pBuf++); // 循环把缓冲区中的内容写入到安全数组中
varBLOB.vt = VT_ARRAY | VT_UI1;
varBLOB.parray = psa; // 将安全数组设置到变体类型
m_pRecordset->GetFields()->GetItem("photo")->AppendChunk(varBLOB); // 写入到数据库
整个流程就是,首先读取图片文件的内容到pbuf中,如果pbuf有值,那么就创建安全数组,将buf的内容复制到安全数组中,然后写入到数据库里,为什么要安全数组呢,因为写入数据库的需要传递变体类型,变体类型的数组,用的就是安全数组。
热心网友
时间:2023-10-22 05:04
我不太清楚哦