QT调MYSQL存储过程

HeatherYun 2013-02-21 02:15:10
现在遇到这样一个问题
我想用QT调用MYSQL的存储过程,于是在QT里面用CALL去调用了存储过程(语句在MYSQL下面使用过,确定不是语句问题),存储过程里面的语句是正确执行传出参为1,失败传出参为-1(这个也在MYSQL下试验过了,绝对不会传出0的).
然后网上有比较多的帖子,我试了几个方法
第一个是用OUT传出参出来
QSqlQuery query;
query.prepare("CALL sp_getInfo(?,?);");
query.bindValue(0,"A");
query.bindValue(1, 0, QSql::Out);
query.exec();
int i = 0;
i = query.boundValue(1).toInt();
结果i是0……
第二个是用SELECT传结果集出来,我就改了存储过程去掉了出参
QSqlQuery query;
query.prepare("CALL sp_getInfo(?);");
query.bindValue(0, "A");
query.exec();
int i = 0;
if(query.next())
{
i = query.value(0).toInt();
}
结果IF语句进都没进去……
于是我写了一个最简单的存储过程,里面只有一句是SELECT 123456;
QT调用还是各种没结果


求教是我调用的方法有误还是说QT不支持MYSQL存储过程的调用?
...全文
620 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
QQ_278397935 2015-01-15
  • 打赏
  • 举报
回复
sofa.希望给出结论 ,谢谢
神奇物种 2014-03-16
  • 打赏
  • 举报
回复
助手里有这么一句话:   QMYSQL Stored Procedure Support MySQL 5 introduces stored procedure support at the SQL level, but no API to control IN, OUT and INOUT parameters. Therefore, parameters have to be set and read using SQL commands instead of QSqlQuery::bindValue(). Example stored procedure: create procedure qtestproc (OUT param1 INT, OUT param2 INT) BEGIN set param1 = 42; set param2 = 43; END Source code to access the OUT values: QSqlQuery q; q.exec("call qtestproc (@outval1, @outval2)"); q.exec("select @outval1, @outval2"); q.next(); qDebug() << q.value(0) << q.value(1); // outputs "42" and "43" Note: @outval1 and @outval2 are variables local to the current connection and will not be affected by queries sent from another host or connection.
神奇物种 2014-03-16
  • 打赏
  • 举报
回复
qt 5.2 ,同问
丨LOST丨 2013-05-22
  • 打赏
  • 举报
回复
看起来可能是用户没有执行存储过程的权限,试试给予权限: grant execute on procedure dbname.sp_getInfo to username@host;
Jonix 2013-05-20
  • 打赏
  • 举报
回复
楼主解决没有啊? 同样的问题啊。
qq114759614 2013-05-08
  • 打赏
  • 举报
回复
MYsqli 不会用呀
he702477275 2013-04-22
  • 打赏
  • 举报
回复
Qt支持mysql存储的,就是返回值取不到
he702477275 2013-04-22
  • 打赏
  • 举报
回复
楼主解决该问题了吗?我也被困扰好几天了

16,801

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧