我对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中使用整型位置,但没有成功。查询执行成功,所以我无法获取确切的错误。我在我的程序中使用了很多prepare和bindValue,它工作得很好,问题只出现在这个类上:/
发布于 2012-12-04 00:28:05
而不是
[...] nom LIKE %:p% OR prenom = %:f%
您的准备语句应为
[...] nom LIKE '%'||:p||'%' OR prenom = '%'||:f||'%'
https://stackoverflow.com/questions/13111130
复制相似问题