Qt Sql bindValue与%

来源:互联网 发布:byte数据是什么意思 编辑:程序博客网 时间:2024/05/22 15:14

本站所有文章由本站和原作者保留一切权力,仅在保留本版权信息、原文链接、原文作者的情况下允许转载,转载请勿删改原文内容, 并不得用于商业用途。 谢谢合作。
原文链接:Qt Sql bindValue与%

Qt Sql bindValue与%

今天qq群里有人问了个有难度的sql问题(或许很没难度,呵呵, 可惜笔者基本上对sql一窍不通), 如下code:

QString sql("SELECT id, name ");     sql += "FROM customer WHERE name LIKE '%:name%'";   //issue this linebool result = false;        QSqlDatabase db = DBUtil::getDatabase(ok, error);     QSqlQuery query(db);     query.prepare(sql);     query.bindValue(":name", name);     result = query.exec();

这里的bindValue并不能实现替换。 估计是%在字符串里被定义成了特殊的字符, 可能影响了bind的功能。 向专家咨询了一下, 得到了以下的解决方式:

QString sql("SELECT id, name )";     sql += "FROM customer WHERE name LIKE :name";   //issue this linebool result = false;        QSqlDatabase db = DBUtil::getDatabase(ok, error);     QSqlQuery query(db);     query.prepare(sql);     query.bindValue(":name", "%"+name+"%");     result = query.exec();

看上去应该能行。 正在实验, 稍后贴测试结果。

原创粉丝点击