我的某个表中有字段类型为binary(8),读没有问题,但存不进去,不知何故?1.读取方法:(没有问题,测试通过)
typedef struct MYDATA {
short No1;
short No2;
short No3;
short No4;
} MYDATA
_variant_t varRelateNo = pRecordSet->GetCollect("related_no");
if(varRelateNo.vt!=VT_NULL)
{
SAFEARRAY *pArray;
pArray = varRelateNo.parray;
MYDATA * pMyData = new MYDATA ;
memcpy(pMyData,pArray->pvData,sizeof MYDATA);
}2.存储方法:(2种都不行)
(1)_variant_t varRelateNo;
SAFEARRAY *pArray;
pArray = varRelateNo.parray;
memcpy(pArray->pvData,pMyData,sizeof MYDATA);//执行此处跳入catch中,估计和varRelateNo为VT_EMPTY有关!
pRecordSet->PutCollect("related_no",varRelateNo);
(2)m_pFieldPtr = m_pFieldsPtr->Item["related_no"];
str = "0x0000000000000123";
m_pFieldPtr->Value = (_variant_t)str;
//对于第2种方法,若字段类型为常规的int,short,string等均测试通过!
请高手指点!
typedef struct MYDATA {
short No1;
short No2;
short No3;
short No4;
} MYDATA
_variant_t varRelateNo = pRecordSet->GetCollect("related_no");
if(varRelateNo.vt!=VT_NULL)
{
SAFEARRAY *pArray;
pArray = varRelateNo.parray;
MYDATA * pMyData = new MYDATA ;
memcpy(pMyData,pArray->pvData,sizeof MYDATA);
}2.存储方法:(2种都不行)
(1)_variant_t varRelateNo;
SAFEARRAY *pArray;
pArray = varRelateNo.parray;
memcpy(pArray->pvData,pMyData,sizeof MYDATA);//执行此处跳入catch中,估计和varRelateNo为VT_EMPTY有关!
pRecordSet->PutCollect("related_no",varRelateNo);
(2)m_pFieldPtr = m_pFieldsPtr->Item["related_no"];
str = "0x0000000000000123";
m_pFieldPtr->Value = (_variant_t)str;
//对于第2种方法,若字段类型为常规的int,short,string等均测试通过!
请高手指点!
解决方案 »
- fwrite("ss",1,strlen("ss"),pFile)函数如何写到文件pFile的开始位置
- 如何在由CDialog类派生的子类中使用CDocument子类的成员
- =====> 急问,ActiveX 在 IE 下载过程是走的 tcp 什么端口 ?是 80 吗?
- 函数声明中加入const的作用??
- 谁给我解释一下下面代码的意思,不胜感谢。
- 内存问题
- 关于启动新进程的问题,请教????
- 问个Vc的菜鸟问题
- 求人指点 C++面向对象程序设计
- 高手帮帮忙:vc编写的dll如何让他被vb,pb调用??
- 如何在ListCtrl的表格中显示自绘的汉字?(TextOut(0, 0 ""))???
- ADO、DAO、ODBC哪个好?
.....try
{
VARIANT varBLOB;
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = sizeof(MYDATA);
psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
BYTE* pByte;
if(SafeArrayAccessData(psa,(void**)&pByte) == NOERROR)
memcpy((LPVOID)pByte,(LPVOID)&data,sizeof(MYDATA));
SafeArrayUnaccessData(psa); varBLOB.vt = VT_ARRAY | VT_UI1;
varBLOB.parray = psa;
m_pRecordset->Fields->GetItem("related_no")->AppendChunk(varBLOB);
}
catch(_com_error)
{
}