QSqlQuery类用于执行SQL语句,支持两种风格的占位符:
冒号引导的Oracle风格占位符,如“:id”
问号引导的ODBC风格占位符,如“?id”
但这两种风格的占位不能混合使用。为了给SQL语句中的占位符绑定值,可以调用该类的如下方法:
xxxxxxxxxx
61void QSqlQuery::bindValue(const QString& placeholder, const QVariant& val,
2 QSql::ParamType paramType = QSql::In); // 按占位符的名字绑定值
3void QSqlQuery::bindValue(int pos, const QVariant&val,
4 QSql::ParamType paramType = QSql::In); // 按占位符的位置绑定值
5void QSqlQuery::addBindValue(const QVariant& val,
6 QSql::ParamType paramType = QSql::In); // 按占位符的顺序绑定值
例如:
xxxxxxxxxx
81QSqlQuery query;
2query.prepare("INSERT INTO t_employee (name, gender, department_id, salary) "
3 "VALUES (:name, :gender, :department_id, :salary)");
4query.bindValue(":name", "刘备");
5query.bindValue(1, "男");
6query.addBindValue(3);
7query.addBindValue(35000);
8query.exec();