m_pRecordset->PutCollect("Value",struct_WaveStor.Value);
这样写入时总出错。
"Value"在数据库中定义的是binary类型。不能用BLOB类型的函数来存储。
struct_WaveStor是自定义的结构体,Value是其中的一个BYTE型数组
struct PcVibWave
{
BYTE Value[4096];
};
struct PcVibWave struct_WaveStor;
解决方案 »
- 对话框 控件 双缓存绘图依然闪烁
- 程序中F1-F9加速键不响应
- 如何在OpenGL运用贝塞尔曲线画一个标准的圆??????
- 向记事本发送字符消息
- 我想在一个dialog上放两个静态文本框,然后有文字在上面滚动显示.大家说说思路,或者有没有别的好办法..谢谢..急
- 如何在连接库中调用主程序里的回调函数
- 关于cpropertysheet和cpropertypage的一个大难题,高手急救!!!
- 大家帮忙,我有一个数据类型转换的问题,
- 关于用mfc打开网页的问题
- 救救我!----cj60lib的问题
- 请高手指点,在如何解压缩一个zip文件?急啊!!多谢!多谢!!!
- 如何使View类继承CScrollView类??
下面是一个例子,仅供参考:
VARIANT var;
SAFEARRAY *psa;
BYTE *pByte = NULL; VariantInit(&var);
psa = ::SafeArrayCreateVector(VT_UI1, 0, dwRealLen);
::SafeArrayAccessData(psa, (void**) &pByte);
memcpy(pByte, saveISM.m_Msg.GetMsg(), dwRealLen);
var.vt = VT_ARRAY | VT_UI1;
var.parray = psa;
pRst->GetFields()->GetItem(FIELD_DATAIRISMSG_MSG)->AppendChunk(var);
::SafeArrayUnaccessData(psa);
CRecordSet * pRst;
for(long i=0;i<(long)sizeof(struct_WaveStor.Value);i++)
///将vt指向的二进制数据保存到SAFEARRAY对象psa中
SafeArrayPutElement(psa,&i,*(struct_WaveStor+4)++);我要存的字段是结构体中的第5个字段,struct_WaveStor是通过memcpy()方法从别处拷贝过来的。
编译的时候为什么会提示:
error C2678: binary '+' : no operator defined which takes a left-hand operand of type 'struct PcVibWave' (or there is no acceptable conversion)
感谢gwinner(动力引擎)的热心提示,不过我最终还是用别的方法(参考BLOB文件的存储方法)
编写了一段程序。