QT QSQLQUERY准备和bindValue不起作用

Qt QSqlQuery prepare and bindValue not working

本文关键字:bindValue 不起作用 QSQLQUERY QT      更新时间:2023-10-16

我在准备和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 with?并在bindvalue中使用int位置,但没有运气。查询成功地执行,因此我无法获取确切的错误。我在程序中经常使用准备和绑定,并且效果很好,问题仅在此类中:/

而不是

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

您的准备声明应阅读

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