Bonjour à tous,
J'ai un gros soucis, je ne trouve pas comment faire pour réaliser une requête avec un nombres de paramètres variables.
Pour le moment j'arrive à faire une requête avec des variables :
Mais je ne sais pas comment faire lorsque mon nombre de variable est variable !!Code:model -> setFilter(QString("Colonne1 LIKE '%1' AND Colonne2 LIKE '%2'").arg(Var1).arg(Var2));
Merci pour vos lumières
Dans d'autre termes, comment faire une sous requete avec qt ?
Je pense que ce n'est pas possible avec setfilter donc je m'oriente vers une requete SQL faite dans qt du genre :
Reste à savoir comment lui passer la liste.Code:
1
2 QSqlQuery query; query = "SELECT FROM Pieces WHERE id IN :List"
Bon j'arrive à executer ma requete mais pour afficher le résultat dans un Qtableview ça marche pas car le setQuery ne peut pas etre utilsé sur un Qtablemodel
J'y suis arrivé, voilà ma solution :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 for (int i = 0; i < qli_Models.size(); i++) { modelPieces -> setFilter(QString("FKidDispositifs = '%1' AND FKidCatalogues LIKE '%2'").arg(qs_Device).arg(qli_Models.value(i))); modelPieces -> sort(i_IODatesPieces, Qt::DescendingOrder); if (i != qli_Models.size() - 1) { qs_Filter.append(QString("idPieces = " + QString::number(modelPieces -> record(0).value(i_IOidPieces).toInt()) + " OR ")); } else { qs_Filter.append(QString("idPieces = " + QString::number(modelPieces -> record(0).value(i_IOidPieces).toInt()))); } } // Filtre avec un nombre variable de variable modelPieces -> setFilter(QString(qs_Filter));