我用多线程对同一个数据库的MidTable进行操作(包括查询,删除,插入操作),在对MidTable操作前,我都会进行加锁,
mysql_query(g_nodeInfo[m_NodeIndex].sqlHandle,sqlCom),sqlHandle句柄,sqlCom都不为空,但是报了libmysql.lib 000005错误,汇编错误代码处是0x10035f73,程序崩溃,请问什么情况下,mysql_query会使程序崩溃

解决方案 »

  1.   

    要么程序代码本身有问题,要么是MySQL的BUG。 各个条件都试下吧。
      

  2.   

    用vc开多线程,我试了一下就算是sqlHandle句柄值无效,报的错误也不是0x10035f73,而是0x1000763e sql语句为空的话是0x1004BBF0,环境的话就是用多线程对同一个数据库的MidTable进行操作(包括查询,删除,插入操作),在对MidTable操作前,我都会进行加锁, 而后运行一段时间后,就会出现程序崩溃的现象,但是报了libmysql.lib 000005错误,汇编错误代码处是0x10035f73,程序崩溃
      

  3.   

    很难模拟再现你的问题,建议
    1。看一下MySQL数据库上的日志及错误日志,确保不是数据库端的问题
    2。 你的mysql_query 的查询语句是什么?
    3。是否会是内存泄漏?因为你是执行一段后才出现问题,有没有 mysql_free_result() ?
      

  4.   

    看一下MySQL数据库上的日志及错误日志,确保不是数据库端的问题 怎么查 错误日志在哪
    我执行mysql_query 都有mysql_free_result() 
      

  5.   

     错误日志在哪在你的 datadir 变量定义的目录下。 一个 *.err 文件,正常日志为 *.log 一般都是以你的主机名命令的。
      

  6.   

    估计是超过了MySQL能处理的线程个数,端口的设定方面的东西