MFC 向MySQL存储blob类型数据,总是为空,大神指导下

xiaocui_2 2015-05-22 10:21:51
在用ado向MySQL数据库插入一条记录,存储blob类型数据总是为空,下面是代码。

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();
...全文
135 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
本课程详细讲解了以下内容:    1.jsp环境搭建及入门、虚拟路径和虚拟主机、JSP执行流程    2.使用Eclipse快速开发JSP、编码问题、JSP页面元素以及request对象、使用request对象实现注册示例    3.请求方式的编码问题、response、请求转发和重定向、cookie、session执行机制、session共享问题     4.session与cookie问题及application、cookie补充说明及四种范围对象作用域     5.JDBC原理及使用Statement访问数据库、使用JDBC切换数据库以及PreparedStatement的使用、Statement与PreparedStatement的区别     6.JDBC调用存储过程和存储函数、JDBC处理大文本CLOB及二进制BLOB类型数据     7.JSP访问数据库、JavaBean(封装数据和封装业务逻辑)     8.MVC模式与Servlet执行流程、Servlet25与Servlet30的使用、ServletAPI详解与源码分析     9.MVC案例、三层架构详解、乱码问题以及三层代码流程解析、完善Service和Dao、完善View、优化用户体验、优化三层(加入接口和DBUtil)    1 0.Web调试及bug修复、分页SQL(Oracle、MySQL、SQLSERVER)     11.分页业务逻辑层和数据访问层Service、Dao、分页表示层Jsp、Servlet     12.文件上传及注意问题、控制文件上传类型和大小、下载、各浏览器下载乱码问题     13.EL表达式语法、点操作符和中括号操作符、EL运算、隐式对象、JSTL基础及set、out、remove     14.过滤器、过滤器通配符、过滤器链、监听器     15.session绑定解绑、钝化活化     16.以及Ajax的各种应用     17. Idea环境下的Java Web开发

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧