我正在尝试执行以下操作:
QSqlQueryModel *model = new QSqlQueryModel();
QSqlQuery *qry = new QSqlQuery(mydb);
QString qstr = "Select * from table WHERE Name REGEXP ";
qstr.append("'");
qstr.append(m_filterText);
qstr.append("'");
qry->prepare(qstr);
qry->exec();
model->setQuery(*qry);
它没有返回任何内容,并记录以下错误:
无查询无法获取行
有关为何发生这种情况的任何想法?如果我在sqlite3
shell中运行它,它可以工作。好像QSQLITE
适配器缺少REGEXP
定义。不确定。
答案 0 :(得分:0)
正如评论中所提到的,你真的应该和Bobby Tables谈谈......
除此之外,SQLITE定义了REGEXP
操作,但它没有由SQLITE实现。所以每个框架都必须单独完成。不幸的是,Qt没有实现它,因此一旦定义正确,您的查询将无效。
您必须自己实施REGEXP
或等到Qt 5.10。然后Qt将提供基本实现:http://doc-snapshots.qt.io/qt5-dev/sql-driver.html#enable-regexp-operator。