Windows下mysql connector c++ 使用setblob后执行报错
来源:互联网 发布:nginx 根据ip分发 编辑:程序博客网 时间:2024/06/01 09:02
mysql connector c++版本:1.1.7
mysql版本:5.7.16
编译器:VS2008
class CDBBlobPacker : public streambuf
{
public:
CDBBlobPacker(char* pStrConext, uint32 nSize)
{
setg(pStrConext, pStrConext, pStrConext+nSize);
}
};
sql::Connection* m_pDBConnPtr;
sql::Driver* m_pDBDriverPtr;
sql::ResultSet* m_pDBResultPtr;
sql::PreparedStatement* m_pDBPrepStmt;
try{
m_pDBDriverPtr = get_driver_instance();
m_pDBConnPtr = m_pDBDriverPtr->connect("tcp://127.0.0.1:3306/xxx", "root", "xxxx");
m_pDBConnPtr->setAutoCommit(true);
std::string strSql = "insert into `tb_test`(id, testblob) value(?, ?);";
m_pDBPrepStmt = m_pDBConnPtr->prepareStatement(strSql.c_str());
m_pDBPrepStmt->setInt(1, 1);
char cblob1[128] = "12345678909876543211234567890";
CDBBlobPacker packblob(cblob1, 29);
std::istream blobs(&packblob);
m_pDBPrepStmt->setBlob(2, &blobs);
m_pDBPrepStmt->executeUpdate(); //执行此报错,若不setblob则插入数据正常
}catch(sql::SQLException& e)
{
std::cout << "SQLException:" << e.what() << " MySQL error code:" << e.getErrorCode() << std::endl;
mysql版本:5.7.16
编译器:VS2008
class CDBBlobPacker : public streambuf
{
public:
CDBBlobPacker(char* pStrConext, uint32 nSize)
{
setg(pStrConext, pStrConext, pStrConext+nSize);
}
};
sql::Connection* m_pDBConnPtr;
sql::Driver* m_pDBDriverPtr;
sql::ResultSet* m_pDBResultPtr;
sql::PreparedStatement* m_pDBPrepStmt;
try{
m_pDBDriverPtr = get_driver_instance();
m_pDBConnPtr = m_pDBDriverPtr->connect("tcp://127.0.0.1:3306/xxx", "root", "xxxx");
m_pDBConnPtr->setAutoCommit(true);
std::string strSql = "insert into `tb_test`(id, testblob) value(?, ?);";
m_pDBPrepStmt = m_pDBConnPtr->prepareStatement(strSql.c_str());
m_pDBPrepStmt->setInt(1, 1);
char cblob1[128] = "12345678909876543211234567890";
CDBBlobPacker packblob(cblob1, 29);
std::istream blobs(&packblob);
m_pDBPrepStmt->setBlob(2, &blobs);
m_pDBPrepStmt->executeUpdate(); //执行此报错,若不setblob则插入数据正常
}catch(sql::SQLException& e)
{
std::cout << "SQLException:" << e.what() << " MySQL error code:" << e.getErrorCode() << std::endl;
}
解决方案:
不要使用VS2008;在VS2012上编译调试通过!
0 0
- Windows下mysql connector c++ 使用setblob后执行报错
- Linux下安装使用mysql connector(C++)
- Linux下安装使用mysql connector(C++)
- linux下使用mysq Connector/C连接mysql服务端过程
- Windows环境下Code::Blocks中成功配置MySQL Connector/C连接MySQL数据库
- mysql-connector 6.0.4报错
- 如何使用mysql connector c in window
- Linux下安装使用mysql connector/C++
- Linux下安装使用 mysql connector/C++
- VS2010环境下 用MySQL Connector C 连接 MySql数据库
- VS2010环境下 用MySQL Connector C 连接 MySql数据库
- MySQL Connector C
- mysql-connector-c windows x64 静态库 源码编译 vs2013
- win10,python2.7,mysql-connector-python 报错 mysql.connector.errors.InternalError: Unread result found
- Windows下phpmyadmin登陆mysql报错
- 使用MySQL Connector/C(libmysqlclient) 连接MySQL服务器
- vs2013下使用mysql connector连接mysql数据库
- MySQL使用connector C/C+读取二进制字段
- 安卓开发全教程(汇总)
- 不带头结点的单链表的删除
- 20161101的考试】搜索,搜索+dp,ds水题
- hiho122
- LabVIEW 版的 printf 简介
- Windows下mysql connector c++ 使用setblob后执行报错
- Linux ubuntu的vbox和本机Windows文件共享以及Linux中的java环境配置
- Oracle及Oracle客户端、PLSQL安装的一些问题
- Dorado学习笔记(一)
- 数据结构:队列的链式存储结构
- Javaweb----上传文件,excle表格录入数据库的表中
- 【Java并发】JAVA并发编程实战-读书笔记14
- caffe源码解析的三个博客分享
- [第二步]在NanoPi NEO UbuntuCore下安装homebridge(相关错误解决,希望能帮到同样遇到这些问题的朋友)