Qt QSqlQuery准备和bindValue无法正常工作

时间:2012-10-28 17:18:37

标签: c++ qt prepare

我遇到了prepare和bindValue的问题:(

db.open();
QSqlQuery q;
    q.prepare("SELECT id_malade,nom,prenom FROM Malade WHERE nom LIKE %:p% OR prenom = %:f% ;");
    q.bindValue(":p",ui->lineEdit->text());
    q.bindValue(":f",ui->lineEdit->text());
    qDebug() << q.boundValue(0) << " " << q.boundValue(1);
    qDebug() << q.executedQuery().toStdString().c_str(); db.close();

输出是:

QVariant(QString, "zit")   QVariant(QString, "zit") 
SELECT id_malade,nom,prenom FROM Malade WHERE nom LIKE %?% OR prenom = %?% ;

我试图改变:p和:f用?并在bindValue中使用int位置但没有运气。 查询已成功执行,因此无法获取确切的错误。 我在我的程序中使用了prepare和bindValue很多,它只能在这个类上运行正常:/

1 个答案:

答案 0 :(得分:3)

而不是

[...] nom LIKE %:p% OR prenom = %:f%

你的准备陈述应该是

[...] nom LIKE '%'||:p||'%' OR prenom = '%'||:f||'%'