代码:
(1)
string query = "call SelectAllCreatureTemplate()";
int t = mysql_query(mysql, query.c_str());
MYSQL_RES* m_res = mysql_store_result(mysql);
(2)
string query = "call SelectAllCreatureTemplate";
int t = mysql_query(mysql, query.c_str());
MYSQL_RES* m_res = mysql_store_result(mysql);其中存储过程:
create procedure SelectAllCreatureTemplate()
begin
select * from CreatureTemplate;
end
代码(1)不能取到结果,也就是说m_res为空;
代码(2)不能取到结果,也就是说m_res不为空;
为什么会这样子?   是因为存储过程不能取到结果集吗?

解决方案 »

  1.   


    mysql_query(mysql,"set names gb2312");http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  2.   

    你用的是C/C++?C API 的语法格式如下:
    mysql_query(&mysql,stmt);
    MYSQL_RES *result;
    int t = mysql_query(&mysql,"call SelectAllCreatureTemplate()")
    result = mysql_store_result(&mysql);
      

  3.   

    语法格式是int mysql_query(MYSQL *mysql, const char *stmt_str) 
    int t = mysql_query(&mysql,"call SelectAllCreatureTemplate()")
      

  4.   

    不好意思,我打错了...我想要问的是:
    代码: 
    (1) 
    string query = "call SelectAllCreatureTemplate()"; 
    int t = mysql_query(mysql, query.c_str()); 
    MYSQL_RES* m_res = mysql_store_result(mysql); 
    (2) 
    string query = "select * from CreatureTemplate"; 
    int t = mysql_query(mysql, query.c_str()); 
    MYSQL_RES* m_res = mysql_store_result(mysql); 其中存储过程: 
    create procedure SelectAllCreatureTemplate() 
    begin 
    select * from CreatureTemplate; 
    end 
    代码(1)不能取到结果,也就是说m_res为空; 
    代码(2)不能取到结果,也就是说m_res不为空; 
    为什么会这样子?  是因为存储过程不能取到结果集吗?
      

  5.   

     楼主有看别人给你的回复吗?按照C API的语法格式,改成如下后再试。(1) 
    int t = mysql_query(&mysql, "call SelectAllCreatureTemplate()"); 
    MYSQL_RES* m_res = mysql_store_result(&mysql); 
    (2) int t = mysql_query(&mysql,"select * from CreatureTemplate"); 
    MYSQL_RES* m_res = mysql_store_result(&mysql); 
      

  6.   

    按照版主的方式也不能取到结果.int t = mysql_query(&mysql, "call SelectAllCreatureTemplate()"); 
    MYSQL_RES* m_res = mysql_store_result(&mysql); m_res仍然为空
      

  7.   

    int t = mysql_query(&mysql, "call SelectAllCreatureTemplate()"); 返回值 t 是什么?
      

  8.   

    但是(2)
    int t = mysql_query(&mysql,"select * from CreatureTemplate"); 
    MYSQL_RES* m_res = mysql_store_result(&mysql);m_res不为空
      

  9.   

    知道了,将
    mysql_real_connect(mysql, LOCAL_HOST, "root","123456", db.c_str(), 0, NULL, 0);
    改成
    mysql_real_connect(mysql, LOCAL_HOST, "root","123456", db.c_str(), 0, NULL, CLIENT_MULTI_STATEMENTS);
    就可以拿到结果了