4,011
社区成员
发帖
与我相关
我的任务
分享
int nLength;
char *temp;
UCHAR chData;
char *pBuf = "01007F2C7F2D7F267F2680F082E0817F7F7B7EF77EE97EF77F047F0B7F187F197F1A7F257FF";
nLength = strlen(pBuf);
printf("%s\n",pBuf);
printf("strlen(pBuf) = %d\n",nLength);
SAFEARRAY * psa;
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = nLength;
psa = SafeArrayCreate(VT_UI1,1,rgsabound);
printf("SafeArrayPutElement start!\n");
for (long i=0;i<nLength;i++)
{
printf("%d %c\n",i,*pBuf);
SafeArrayPutElement(psa,&i,pBuf++);
}
printf("strlen(pBuf) = %d\n",strlen(pBuf));
printf("pBuf = %s\n",pBuf);
_variant_t varBLOB;
varBLOB.vt = VT_ARRAY || VT_UI1;//将var的类型设置为BYTE类型的数组
varBLOB.parray = psa;
for (i=0;i<nLength;i++)
{
SafeArrayGetElement(psa,&i,&chData);
printf("%d %c\n",i,chData);
}
recordPtr.CreateInstance(__uuidof(Recordset));
recordPtr->Open(_variant_t("data"),_variant_t((IDispatch*)pConnection.GetInterfacePtr(),true),
adOpenKeyset,
adLockOptimistic,
adCmdTable);//表名
//插入一条新记录,为每个字段赋值
recordPtr->AddNew();
printf("AddNew() exec succeed!\n");
recordPtr->GetFields()->GetItem(_variant_t("Meter_Id"))->Value = (_bstr_t)"2";
// recordPtr->GetFields()->GetItem("Meter_Id")->PutValue((_bstr_t)"3");
printf("Meter_Id value succeed!\n");
recordPtr->GetFields()->GetItem(_variant_t("time"))->Value = (_bstr_t)"2015-05-13 13:42:00";
printf("time value succeed!\n");
recordPtr->GetFields()->GetItem(_variant_t("datanum"))->Value = (_bstr_t)"3999";
printf("datanum value succeed!\n");
recordPtr->GetFields()->GetItem(_variant_t("data"))->AppendChunk(varBLOB);
printf("data appendchunk succeed!\n");
recordPtr->Update();