• 5119阅读
  • 5回复

[提问][已解决]QT 调用Mysql 数据 limit 参数能不能用动态参数 [复制链接]

上一主题 下一主题
 
只看楼主 倒序阅读 楼主  发表于: 2011-10-13
            int per_page;
            per_page=20;
            QSqlQuery query("select *from infor  limit 1 ,"+per_page,db);
           这样子也不行

   或者能不能给一个能够分页显示数据数据的代码~~谢谢各位大侠了


离线jorneyr

只看该作者 1楼 发表于: 2011-10-13
QSqlQuery query(db);
query.prepare("select * from infer limit :count, start_index");
query.bindValue(":count", 1);
query.bindValue(":start_index", per_page);
query.exec();

使用上面这样的占位符
只看该作者 2楼 发表于: 2011-10-13
回 1楼(jorneyr) 的帖子
   QT才刚学半个月 新手一个  还是不懂大大的意思
关键是 我还想得到数据库的数据 在textEdit上显示
能不能给个完整的代码 得到数据库的数据
没这句 QSqlQuery query("select *from infor  limit 10",db);    我就傻眼了
只看该作者 3楼 发表于: 2011-10-13
查了下资料 我懂大大的意思了  用动态执行SQL语句的方法  可是数据库里的数据还是没出来
离线jorneyr

只看该作者 4楼 发表于: 2011-10-14
#include <QtGui/QApplication>#include "ui/Widget.h"#include "DBUtil.h"#include <QtGui/QGridLayout>#include <QtSql>#include <QDebug>// ????????void connectToDatabase() {    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");    db.setDatabaseName("data.db");    db.open();}// pageCount: ?????????// startIndex: ?? startIndex ??????, ???0??void executeQuery(int pageCount, int startIndex) {    QSqlQuery query(QSqlDatabase::database());    // ????product_types????:id, name    // create table product_types (id integer primary key autoincrement, name text);    query.prepare("SELECT * FROM product_types LIMIT :page_count OFFSET :start_index");    query.bindValue(":page_count", pageCount);    query.bindValue(":start_index", startIndex);    query.exec(); // ??????    QSqlRecord record = query.record();    int idNo = record.indexOf("id");    int nameNo = record.indexOf("name");    // ????????????QLineEdit???????    while (query.next()) {        int id = query.value(idNo).toInt();        QString name = query.value(nameNo).toString();        qDebug() << "ID: " << id << ", Name: " << name;    }}int main(int argc, char *argv[]) {    QApplication a(argc, argv);    connectToDatabase();    executeQuery(3, 4); // ????3???, ??5??????    return a.exec();}
只看该作者 5楼 发表于: 2011-10-14
回 4楼(jorneyr) 的帖子
终于出来了
  大大 在query.prepare("SELECT * FROM infor limit :count  , :start_index");这句的
:count  , :start_index 中间少了一个逗号
~   再次感谢大大的提示
快速回复
限100 字节
 
上一个 下一个