mysql c api 报错 Commands out of sync
时间:2011-08-11
来源:互联网
C/C++ code
第二条查询语句执行的时候,会报错误
Commands out of sync; you can't run this command now
翻过资料,也没能解决这个问题,希望大家能帮帮忙
使用的是 MySQL Connector C 6.0.2\lib\opt\libmysql.lib
#include "stdafx.h" #include <windows.h> // #include <my_global.h> // #include <my_sys.h> #include <mysql.h> #include <iostream> using namespace std ; char szIp[] = "192.168.1.11" ; char szUser[] = "root" ; char szPasswd[] = "root" ; char szDbname[] = "userdb" ; unsigned int uPort = 3306 ; unsigned long uEx = 0 ; //CLIENT_MULTI_STATEMENTS ; DWORD WINAPI databasetest( void* ) { MYSQL mysql_data ; memset( &mysql_data, 0 , sizeof(mysql_data) ) ; mysql_init( &mysql_data ) ; char value = 1 ; //mysql 中的自动重连机制 mysql_options( &mysql_data , MYSQL_OPT_RECONNECT , (char *)&value ) ; if ( !mysql_real_connect(&mysql_data , szIp , szUser, szPasswd, szDbname , uPort , NULL , uEx ) ) { cout << "database connect failed : " << endl ; cout << mysql_error(&mysql_data) << endl ; return FALSE ; } else { cout << "OnThreadIni success " << endl ; } //查询,返回一个结果集 MYSQL_RES *m_lpRes = NULL ; string mysql = "Call CheckPassword ( 'user0001' , '0000000000000000' , 17305772 )" ; if ( 0 == mysql_real_query( &mysql_data , mysql.c_str(), mysql.size() ) ) { m_lpRes = mysql_store_result(&mysql_data) ; if ( m_lpRes ) { cout << "check user success" << endl ; } else { cout << "check user failed" << endl ; } mysql_free_result(m_lpRes); } else { cout << mysql_error( &mysql_data ) << endl ; } //该存储过程不返回结果 mysql = "Call LogOutLog ( 'user0001' ,10 ) " ; if ( 0 == mysql_real_query( &mysql_data , mysql.c_str(), mysql.size() ) ) { cout << "mysql_real_query success" << endl ; } else { cout << mysql_error( &mysql_data ) << endl ; } mysql_close( &mysql_data ) ; return 0 ; //再次查询 } int _tmain(int argc, _TCHAR* argv[]) { if ( mysql_library_init( 0 , NULL , NULL )) { cout << "server init failed" << endl ; return 0 ; } for ( int i = 0 ; i < 1 ; i++ ) { CreateThread( NULL , 0 , (LPTHREAD_START_ROUTINE)databasetest , NULL , 0 , NULL ) ; } mysql_library_end() ; cout << "close mysql connect" << endl ; char _in ; cin>>&_in ; return 0; }
第二条查询语句执行的时候,会报错误
Commands out of sync; you can't run this command now
翻过资料,也没能解决这个问题,希望大家能帮帮忙
使用的是 MySQL Connector C 6.0.2\lib\opt\libmysql.lib
作者: newmczh 发布时间: 2011-08-11
看看这个:
http://blog.csdn.net/grass_ring/article/details/3499402
http://blog.csdn.net/grass_ring/article/details/3499402
作者: iihero 发布时间: 2011-08-11
A.2.13. 命令不同步
如果遇到“命令不同步”错误,将无法在你的客户端代码中运行该命令,你正在以错误顺序调用客户端函数。
例如,如果你正使用mysql_use_result(),并打算在调用mysql_free_result()之前执行新查询,就会出现该问题。如果你试图执行两次查询,但并未在两次查询之间调用mysql_use_result()或mysql_store_result(),也会出现该问题。
如果遇到“命令不同步”错误,将无法在你的客户端代码中运行该命令,你正在以错误顺序调用客户端函数。
例如,如果你正使用mysql_use_result(),并打算在调用mysql_free_result()之前执行新查询,就会出现该问题。如果你试图执行两次查询,但并未在两次查询之间调用mysql_use_result()或mysql_store_result(),也会出现该问题。
作者: rucypli 发布时间: 2011-08-11
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28