自己负责的一个模块A,与同事负责的一个模块B进行联调。A和B均为独立的应用程序,均运行在本地PC上。A需要把采集到的数据发送给B进行保存,保存到mysql数据库(存储引擎为InnoDB)。A也在程序中,保存数据到mysql数据库(存储引擎为内存)。但是,联调过程中,发现B模块保存数据会出现,日志里写入了错误的内容。网上也找不少关于2014错误码,但是还是找到原因。希望,各位大侠给点提示?
程序分开独立执行,数据库操作都是正常。
mysql 2014mysql2014

解决方案 »

  1.   

    你分开执行可以,说明两个程序都没有问题,sql语句都是正常的!
    联调的时候
    是不是因为A程序还没有插入呢,B就开始删除了,造成的错误之类的
    往这方面找找看!
      

  2.   

    已解决问题了。原来B模块的问题。
    原因在于2014的问题。
    因为上一个sql执行(上一个sql执行包含多个sql操作语句)返回了多个结果集,但没有把结果都取出来,就执行了新的sql语句,就会产生这个错误。
    2014参考解决方法是:http://blog.sina.com.cn/s/blog_4e45516601000b9x.html
    解决的方法:    nRetCode = mysql_query(m_pDb, strSql);
        if (nRetCode != MYSQL_OK)
        {
    return false;
        } //针对于一个执行语句包含多个SQL语句的情况
    //因为上一个sql执行返回了多个结果集,但没有把结果都取出来,就执行了新的sql语句,就会产生这个2014错误。
    do
    {
    pRes = mysql_store_result(m_pDb);
    if (pRes)
    {
    mysql_free_result(pRes);
    } } while (!mysql_next_result(m_pDb));