• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

用VC通过DLL包连接MySQL,执行存储过程后,再执行其他查询无效?解决方法

mysql 搞代码 7年前 (2018-06-02) 233次浏览 已收录 0个评论

用VC通过DLL包连接mysql,执行存储过程后,再执行其他查询无效?
MYSQL mysql;
mysql_init(&mysql);
mysql_real_connect(&mysql,"localhost","root","","billingdb",0,NULL,CLIENT_MULTI_STATEMENTS);
mysql_query(&mysql,"call pr_add()"); //能执行无返回存储过程正常
…… //往下再执行其他SQL无效
mysql_query(&mysql,"delete from DB_ACCUNT where acc_plat=’address’"); //这是再执行查询或删除,修改无效??
…..

/////////////////////////////////////////////////
如果是换成这样这样:
MYSQL mysql;
mysql_init(&mysql);
mysql_real_connect(&mysql,"localhost","root","","billingdb",0,NULL,CLIENT_MULTI_STATEMENTS);
mysql_query(&mysql,"call pr_add()"); //执行无返回存储过程过程正常
mysql_close(&mysql); //执行操作存储过程后关闭!!一次数据库

mysql_init(&mysql); //再重新链接打开数据库
mysql_real_connect(&mysql,"localhost","root","","billingdb",0,NULL,CLIENT_MULTI_STATEMENTS);
mysql_query(&mysql,"delete from DB_ACCUNT where acc_plat=’address’"); //这是再执行查询或删除,修改没问题
mysql_close(&mysql);
….. //下来除不再操作存储过程,查询或删除,修改。。都正常

问题是:如果不执行存储操作,,,所有的查询或删除,修改没问题,,, 
  如果不存储操作,后不关闭数据库,重新链接 所有的查询或删除,修改后不执行(查询不返回,增。删。没效) 怪??,,,
问题在哪里? 头疼呀, 是不是每次操作存储过程后,都要断开一次链接,再接通???问题出在哪里,
换了最的libmysql.dll 也不行,,,,在mySQL 第三方查询工具里面, 用SQL 语句操作都没问题??
哪位用过的朋友帮忙看看,问题出在哪里,还是我用的查询有问题??????先谢谢了

——解决方案——————–
mysql_query(&mysql,"call pr_add()"); //能执行无返回存储过程正常

加一句 mysql_free_result();试试
——解决方案——————–
mysql_real_connect(&mysql,"localhost","root","","billingdb",0,NULL,CLIENT_MULTI_STATEMENTS);
mysql_query(&mysql,"call pr_add()"); //执行无返回存储过程过程正常

如果是同一个连接,不关闭,必须先把所有的结果集取出来,关闭释放再执行其它的操作。

详见下边的一个示例:
http://www.iihero.com/?id=12


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:用VC通过DLL包连接MySQL,执行存储过程后,再执行其他查询无效?解决方法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址