नोट: यह SQLite के साथ है, हालांकि मुझे उम्मीद है कि समस्या क्यूटी पक्ष पर है।क्यूटी - एक QLqlQuery को "कहां ... IN" खंड के साथ QList को कैसे बांधें?
sqlite> create table testtable (id INTEGER PRIMARY KEY NOT NULL, state INTEGER);
sqlite> insert into testtable (state) values (0);
sqlite> insert into testtable (state) values (1);
sqlite> insert into testtable (state) values (9);
sqlite> insert into testtable (state) values (20);
तब मैं अपने प्रश्न का परीक्षण:
पहले, मैं SQLite कमांड लाइन टूल से एक डेटाबेस तालिका की स्थापना (। परिणाम उन उम्मीद कर रहे हैं)
sqlite> SELECT id,state FROM testtable WHERE state IN (0,1,2);
1|0
3|1
फिर मैं यह सी ++ कोड चलाता हूं:
void runQuery() {
QSqlQuery qq;
qq.prepare("SELECT id,state FROM testtable WHERE state IN (:states)");
QList<QVariant> statesList = QList<QVariant>();
statesList.append(0);
statesList.append(1);
statesList.append(2);
qq.bindValue(":states", statesList);
qq.exec();
qDebug() << "before";
while(qq.next()) {
qDebug() << qq.value(0).toInt() << qq.value(1).toInt();
}
qDebug() << "after";
}
जो इस प्रिंट:
से पहले के बाद
कोई पंक्ति नहीं मुद्रित किया गया। मुझे लगता है कि ऐसा इसलिए है क्योंकि मैं किसी "इन" खंड में प्लेसहोल्डर को सीधे सूची नहीं जोड़ सकता। लेकिन क्या ऐसा करने का कोई तरीका है? मैं इसके बारे में कुछ भी नहीं ढूंढ पाया है।