关于QSqlTableModel的其他使用方法可以在网上搜索,这里不作描述,仅描述QSqlTableModel如何限制数据行数。很简单,重构selectStatement即可。
从QSqlTableModel派生MySqlQueryModel
class MySqlQueryModel : public QSqlTableModel
{
Q_OBJECT
public:
virtual QString selectStatement() const;
}
例如需要限制数据行数在200,则编写如下。请留意注释。
QString MySqlQueryModel::selectStatement() const
{
QString strSql = QSqlTableModel::selectStatement();
strSql += " LIMIT 200"; // 注意字符串的第一个字符需要有空格
return strSql;
}
如果不在上述表达式中添加空格字符,则可能会出现原有表达式与追加的“LIMIT 200”连在一起,形成非法SELECT语句。