• 5926阅读
  • 1回复

数据库的LIKE与Qt中的bindValue出问题 [复制链接]

上一主题 下一主题
离线jorneyr
 

只看楼主 倒序阅读 楼主  发表于: 2009-04-30
    能正常运行的代码:
    QString sql("SELECT id, name, sex, vip, birthday, personal_id, telephone, postcode, ");
    sql += "address, discount, balance, stifled ";
    sql += "FROM customer WHERE name LIKE '%" +name+"%'"; // ******* 直接用这种方式拼接查询语句, 可以正常运行.
    //qDebug() << sql;

    bool result = false;

    // 取得数据库连接, 绑定值, 然后插入数据库.
    QSqlDatabase db = DBUtil::getDatabase(ok, error);
    QSqlQuery query(sql, db);
    result = query.exec();
    DBUtil::operationLog(query, result, ok, error);
    return DAOCustomer::extractCustomers(query, result, ok, error);

    问题代码:
    QString sql("SELECT id, name, sex, vip, birthday, personal_id, telephone, postcode, ");
    sql += "address, discount, balance, stifled ";
    sql += "FROM customer WHERE name LIKE '%:name%'"; // ******这里使用bindValue的方式, 查询语句却不能正常运行了, 不知道何故.

    bool result = false;

    // 取得数据库连接, 绑定值, 然后插入数据库.
    QSqlDatabase db = DBUtil::getDatabase(ok, error);
    QSqlQuery query(db);
    query.prepare(sql);
    query.bindValue(":name", name);
    result = query.exec();
    qDebug() << query.executedQuery();
    DBUtil::operationLog(query, result, ok, error);
    return DAOCustomer::extractCustomers(query, result, ok, error);
    
离线e2008824
只看该作者 1楼 发表于: 2010-11-16
没有指定从哪个表搜索
快速回复
限100 字节
 
上一个 下一个