error:2014 Commands out of sync; you can't run this command now
2013-12-04 23:36
676 查看
error:2014 Commands out of sync; you can't run this command now
原因有三:
其一、PrepareStatement中返回了多个记录集
其二、用MySQL C API建立链接的时候要添加加选项CLIENT_MULTI_STATEMENTS 或 CLIENT_MULTI_RESULTS,以便可以返回多个记录集
其三、返回了多个记录集,结果没有全部fetch出来,这一类型最为常见
假设有两个记录集,全部fetch出来的解决办法:
std::auto_ptr<sql::Statement> stmt = ...;
std::auto_ptr<sql::ResultSet> rs( stmt->getResultSet() );
if ( rs->next() )
{
...
}
if ( stmt->getMoreResult() )
{
rs.reset( stmt->getResultSet() );
...
}
//此处奇怪的是,哪怕只返回的一个记录集,最后也应该执行下面的语句,才能将记录全部fetch完毕
//由此可见,画蛇添足有时候也不见得全部都是不好的含义
while (stmt->getMoreResult() )
{
rs.reset( stmt->getResultSet() );
}
...
原因有三:
其一、PrepareStatement中返回了多个记录集
其二、用MySQL C API建立链接的时候要添加加选项CLIENT_MULTI_STATEMENTS 或 CLIENT_MULTI_RESULTS,以便可以返回多个记录集
其三、返回了多个记录集,结果没有全部fetch出来,这一类型最为常见
假设有两个记录集,全部fetch出来的解决办法:
std::auto_ptr<sql::Statement> stmt = ...;
std::auto_ptr<sql::ResultSet> rs( stmt->getResultSet() );
if ( rs->next() )
{
...
}
if ( stmt->getMoreResult() )
{
rs.reset( stmt->getResultSet() );
...
}
//此处奇怪的是,哪怕只返回的一个记录集,最后也应该执行下面的语句,才能将记录全部fetch完毕
//由此可见,画蛇添足有时候也不见得全部都是不好的含义
while (stmt->getMoreResult() )
{
rs.reset( stmt->getResultSet() );
}
...
相关文章推荐
- 第九天
- [LeetCode]136.Single Numbe
- ubuntu 12.04 安装无线网卡驱动
- Struts工作原理
- 系统分区不求人 Windows7分区功能详解!
- Linux查看文件系统类型和UUID df -T & blkid
- Android实现自定义对话框
- windows上的网络基础库
- 发布Android APK应用流程
- c语言入门!
- 项目管理随想之二
- Spring文件配置模板
- c语言基础!
- HDU--杭电--2105--The Center of Gravity--数学题,求三角形重心
- DX报表的开发流程(1)
- Direct9学习之--------------------------模板缓冲的应用
- 网络爬虫的东东
- 枚举类型enum
- C语言心得!
- 如何打开从asset store 下载的资源