1. 概述

UXDB QT 驱动使基于 QT 框架的应用程序能够通过 QT SQL 模块访问优炫数据库管理系统(UXDB)。QT 驱动对外提供 QT SQL 模块的 11 个公开类,应用可通过这些标准类完成数据库连接、SQL 执行、结果集处理、数据模型绑定等操作。

QT 驱动主要特性:

  • 驱动注册名:QUXSQL(QT 5.x)/ QUXSQL7(QT 7 及新版本),基于 QT 5.6.3 头文件
  • 完全遵循 QT SQL 模块标准接口,应用无需修改即可平滑迁移
  • 支持连接、事务、预处理语句、批量执行、外键关联模型等完整能力
  • 默认端口:52025
  • 支持通过连接选项(setConnectOptions)传递 sslmode 等连接参数

2. 安装与配置

2.1 安装 QT 开发环境

QT 驱动安装包由 UXDB 数据库提供,从 UXDB 数据库产品中获取并安装,版本要求 QT 5.6.3 及以上。

2.2 编译 UXDB QT 驱动插件

使用 qmake 配置 UXDB QT 驱动源码,指定 UXDB 头文件与客户端库路径后编译,生成驱动插件(如 qsqluxsql)。

2.3 部署驱动插件

将编译生成的驱动插件(如 qsqluxsql.dll / libqsqluxsql.so)放入 QT 的 SQL 驱动插件目录(通常为 plugins/sqldrivers/),确保 QT 应用能够通过 QUXSQL 驱动名动态加载该驱动。

2.4 环境配置

驱动依赖 UXDB 的 C 接口库 libuxsql,需配置环境变量,将 UXDB 的 lib 目录(包含 libuxsql 等库文件)加入其中,确保运行时能正确加载该库:

  • Linux:将 UXDB 的 lib 目录加入 LD_LIBRARY_PATH
  • Windows:将 UXDB 的 lib 目录加入 PATH

2.5 连接参数

参数默认值说明
host127.0.0.1数据库服务器地址
port52025UXDB 默认端口
databaseuxdb默认数据库名
useruxdb默认用户名
password******数据库用户密码

3. 快速启动

下面代码演示使用 QT 驱动连接 UXDB 数据库并执行查询。

#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QDebug>

// 1. 添加并注册 UXDB QT 驱动连接(驱动名 QUXSQL)
QSqlDatabase db = QSqlDatabase::addDatabase("QUXSQL");
// 2. 设置连接参数
db.setHostName("127.0.0.1");
db.setPort(52025);                       // UXDB 默认端口 52025
db.setDatabaseName("uxdb");
db.setUserName("uxdb");
db.setPassword("password");
db.setConnectOptions("sslmode=disable"); // sslmode 等参数通过连接选项传递
// 3. 打开连接
if (!db.open()) {
    qDebug() << "连接失败:" << db.lastError().text();
    return;
}
// 4. 执行 SQL
QSqlQuery query(db);
if (query.exec("SELECT * FROM student")) {
    while (query.next()) {
        qDebug() << query.value(0).toString();
    }
}
// 5. 关闭连接
db.close();

4. 接口介绍

4.1 QSqlDatabase(数据库连接)

4.1.1 QSqlDatabase

  • 功能:构造函数
  • 函数:
QSqlDatabase();
QSqlDatabase(const QSqlDatabase &other);
  • 参数:
名称描述
other(输入)另一个同类型对象,用于拷贝构造或克隆
  • 返回值:构造函数不返回值

4.1.2 open

  • 功能:打开数据库连接
  • 函数:
bool open();
bool open(const QString& user, const QString& password);
  • 参数:
名称描述
user(输入)连接用户名
password(输入)连接密码。
  • 返回值:成功返回 true,失败返回 false。

4.1.3 close

  • 功能:关闭数据库连接
  • 函数:
void close();
  • 参数:无。
  • 返回值:无返回值

4.1.4 isOpen

  • 功能:判断连接是否已打开
  • 函数:
bool isOpen() const;
  • 参数:无。
  • 返回值:满足条件返回 true,否则返回 false。

4.1.5 isOpenError

  • 功能:判断连接打开是否失败
  • 函数:
bool isOpenError() const;
  • 参数:无。
  • 返回值:满足条件返回 true,否则返回 false。

4.1.6 tables

  • 功能:列出库中所有表 / 视图 / 系统表
  • 函数:
QStringList tables(QSql::TableType type = QSql::Tables) const;
  • 参数:
名称描述
type(输入)(可选)表类型(QSql::Tables / QSql::Views / QSql::SystemTables 等)。
  • 返回值:返回字符串列表。

4.1.7 primaryIndex

  • 功能:获取指定表的主键索引
  • 函数:
QSqlIndex primaryIndex(const QString& tablename) const;
  • 参数:
名称描述
tablename(输入)表名
  • 返回值:返回索引对象。

4.1.8 record

  • 功能:获取指定表的结构(QSqlRecord)
  • 函数:
QSqlRecord record(const QString& tablename) const;
  • 参数:
名称描述
tablename(输入)表名
  • 返回值:返回记录对象。

4.1.9 exec

  • 功能:在连接上执行一条 SQL 语句并返回查询对象
  • 函数:
QSqlQuery exec(const QString& query = QString()) const;
  • 参数:
名称描述
query(输入)(可选)SQL 语句文本
  • 返回值:返回查询对象。

4.1.10 lastError

  • 功能:返回最近一次错误信息
  • 函数:
QSqlError lastError() const;
  • 参数:无。
  • 返回值:返回最近一次错误信息 QSqlError 对象。

4.1.11 isValid

  • 功能:判断连接对象是否有效
  • 函数:
bool isValid() const;
  • 参数:无。
  • 返回值:满足条件返回 true,否则返回 false。

4.1.12 transaction

  • 功能:开启事务
  • 函数:
bool transaction();
  • 参数:无。
  • 返回值:成功返回 true,失败返回 false。

4.1.13 commit

  • 功能:提交事务
  • 函数:
bool commit();
  • 参数:无。
  • 返回值:成功返回 true,失败返回 false。

4.1.14 rollback

  • 功能:回滚事务
  • 函数:
bool rollback();
  • 参数:无。
  • 返回值:成功返回 true,失败返回 false。

4.1.15 setDatabaseName

  • 功能:设置数据库名
  • 函数:
void setDatabaseName(const QString& name);
  • 参数:
名称描述
name(输入)数据库名
  • 返回值:无返回值

4.1.16 setUserName

  • 功能:设置用户名
  • 函数:
void setUserName(const QString& name);
  • 参数:
名称描述
name(输入)用户名
  • 返回值:无返回值

4.1.17 setPassword

  • 功能:设置口令
  • 函数:
void setPassword(const QString& password);
  • 参数:
名称描述
password(输入)连接密码。
  • 返回值:无返回值

4.1.18 setHostName

  • 功能:设置主机名
  • 函数:
void setHostName(const QString& host);
  • 参数:
名称描述
host(输入)主机名
  • 返回值:无返回值

4.1.19 setPort

  • 功能:设置端口号(UXDB 默认 52025)
  • 函数:
void setPort(int p);
  • 参数:
名称描述
p(输入)端口
  • 返回值:无返回值

4.1.20 setConnectOptions

  • 功能:设置连接选项(UXDB 用连接选项传递 sslmode 等参数)
  • 函数:
void setConnectOptions(const QString& options = QString());
  • 参数:
名称描述
options(输入)(可选)连接选项字符串
  • 返回值:无返回值

4.1.21 databaseName

  • 功能:获取数据库名
  • 函数:
QString databaseName() const;
  • 参数:无。
  • 返回值:返回字符串。

4.1.22 userName

  • 功能:获取用户名
  • 函数:
QString userName() const;
  • 参数:无。
  • 返回值:返回字符串。

4.1.23 password

  • 功能:获取口令
  • 函数:
QString password() const;
  • 参数:无。
  • 返回值:返回字符串。

4.1.24 hostName

  • 功能:获取主机名
  • 函数:
QString hostName() const;
  • 参数:无。
  • 返回值:返回字符串。

4.1.25 driverName

  • 功能:获取驱动名(UXDB 为 QUXSQL)
  • 函数:
QString driverName() const;
  • 参数:无。
  • 返回值:返回字符串。

4.1.26 port

  • 功能:获取端口号
  • 函数:
int port() const;
  • 参数:无。
  • 返回值:返回 int 类型结果。

4.1.27 connectOptions

  • 功能:获取连接选项字符串
  • 函数:
QString connectOptions() const;
  • 参数:无。
  • 返回值:返回字符串。

4.1.28 connectionName

  • 功能:获取本连接的连接名
  • 函数:
QString connectionName() const;
  • 参数:无。
  • 返回值:返回字符串。

4.1.29 setNumericalPrecisionPolicy

  • 功能:设置数值精度处理策略
  • 函数:
void setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy precisionPolicy);
  • 参数:
名称描述
precisionPolicy(输入)数值精度处理策略
  • 返回值:无返回值

4.1.30 numericalPrecisionPolicy

  • 功能:获取数值精度处理策略
  • 函数:
QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const;
  • 参数:无。
  • 返回值:返回数值精度处理策略。

4.1.31 driver

  • 功能:返回底层驱动对象
  • 函数:
QSqlDriver* driver() const;
  • 参数:无。
  • 返回值:返回底层驱动对象指针。

4.1.32 defaultConnection

  • 功能:静态成员:默认连接名(qt_sql_default_connection)
  • 函数:
static const char *defaultConnection;
  • 参数:无。
  • 返回值:返回默认连接名字符串常量(qt_sql_default_connection)。

4.1.33 addDatabase

  • 功能:按驱动名注册并返回一个数据库连接对象
  • 函数:
static QSqlDatabase addDatabase(const QString& type, const QString& connectionName = QLatin1String(defaultConnection));
static QSqlDatabase addDatabase(QSqlDriver* driver, const QString& connectionName = QLatin1String(defaultConnection));
  • 参数:
名称描述
type(输入)驱动类型(如 "QUXSQL")。
connectionName(输入)(可选)连接名
driver(输入)驱动对象。
  • 返回值:返回一个数据库连接对象。

4.1.34 cloneDatabase

  • 功能:克隆指定连接,并注册为新的连接名
  • 函数:
static QSqlDatabase cloneDatabase(const QSqlDatabase &other, const QString& connectionName);
  • 参数:
名称描述
other(输入)另一个同类型对象,用于拷贝构造或克隆
connectionName(输入)连接名
  • 返回值:返回值见功能描述。

4.1.35 database

  • 功能:按连接名取回已注册的连接对象
  • 函数:
static QSqlDatabase database(const QString& connectionName = QLatin1String(defaultConnection), bool open = true);
  • 参数:
名称描述
connectionName(输入)(可选)连接名
open(输入)(可选)是否自动打开连接
  • 返回值:返回已注册的连接对象。

4.1.36 removeDatabase

  • 功能:移除指定连接名及其连接对象
  • 函数:
static void removeDatabase(const QString& connectionName);
  • 参数:
名称描述
connectionName(输入)连接名
  • 返回值:无返回值

4.1.37 contains

  • 功能:判断指定连接名是否已注册
  • 函数:
static bool contains(const QString& connectionName = QLatin1String(defaultConnection));
  • 参数:
名称描述
connectionName(输入)(可选)连接名
  • 返回值:满足条件返回 true,否则返回 false。

4.1.38 drivers

  • 功能:列出所有可用的 QT SQL 驱动名
  • 函数:
static QStringList drivers();
  • 参数:无。
  • 返回值:返回字符串列表。

4.1.39 connectionNames

  • 功能:列出全部已注册的连接名
  • 函数:
static QStringList connectionNames();
  • 参数:无。
  • 返回值:返回字符串列表。

4.1.40 registerSqlDriver

  • 功能:注册自定义 SQL 驱动
  • 函数:
static void registerSqlDriver(const QString &name, QSqlDriverCreatorBase *creator);
  • 参数:
名称描述
name(输入)驱动名
creator(输入)驱动创建器。
  • 返回值:无返回值

4.1.41 isDriverAvailable

  • 功能:判断指定驱动是否可用(已加载)
  • 函数:
static bool isDriverAvailable(const QString &name);
  • 参数:
名称描述
name(输入)驱动名
  • 返回值:满足条件返回 true,否则返回 false。

4.2 QSqlQuery(SQL 查询)

4.2.1 BatchExecutionMode(枚举)

  • 功能:批量执行模式(按行 / 按值)
  • 函数:
ValuesAsRows;
ValuesAsColumns
  • 参数:无。
  • 返回值:枚举常量,用于定义可选取值

4.2.2 QSqlQuery

  • 功能:构造函数
  • 函数:
explicit QSqlQuery(QSqlResult *r);
explicit QSqlQuery(const QString& query = QString(), QSqlDatabase db = QSqlDatabase());
explicit QSqlQuery(QSqlDatabase db);
QSqlQuery(const QSqlQuery& other);
  • 参数:
名称描述
r(输入)底层结果集对象。
query(输入)(可选)SQL 语句文本
db(输入)(可选)数据库连接对象。
other(输入)另一个同类型对象,用于拷贝构造或克隆
  • 返回值:构造函数不返回值

4.2.3 isValid

  • 功能:判断当前记录位置是否有效
  • 函数:
bool isValid() const;
  • 参数:无。
  • 返回值:满足条件返回 true,否则返回 false。

4.2.4 isActive

  • 功能:判断查询是否处于活动状态
  • 函数:
bool isActive() const;
  • 参数:无。
  • 返回值:满足条件返回 true,否则返回 false。

4.2.5 isNull

  • 功能:判断指定列是否为空值
  • 函数:
bool isNull(int field) const;
bool isNull(const QString &name) const;
  • 参数:
名称描述
field(输入)字段对象。
name(输入)字段名
  • 返回值:满足条件返回 true,否则返回 false。

4.2.6 at

  • 功能:获取当前行号
  • 函数:
int at() const;
  • 参数:无。
  • 返回值:返回 int 类型结果。

4.2.7 lastQuery

  • 功能:获取最后执行的 SQL 语句文本
  • 函数:
QString lastQuery() const;
  • 参数:无。
  • 返回值:返回字符串。

4.2.8 numRowsAffected

  • 功能:获取受影响的行数
  • 函数:
int numRowsAffected() const;
  • 参数:无。
  • 返回值:返回 int 类型结果。

4.2.9 lastError

  • 功能:返回最近一次错误信息
  • 函数:
QSqlError lastError() const;
  • 参数:无。
  • 返回值:返回最近一次错误信息 QSqlError 对象。

4.2.10 isSelect

  • 功能:判断当前语句是否为 SELECT
  • 函数:
bool isSelect() const;
  • 参数:无。
  • 返回值:满足条件返回 true,否则返回 false。

4.2.11 size

  • 功能:获取结果集行数(驱动声明支持 QuerySize)
  • 函数:
int size() const;
  • 参数:无。
  • 返回值:返回 int 类型结果。

4.2.12 driver

  • 功能:返回关联的驱动对象
  • 函数:
const QSqlDriver* driver() const;
  • 参数:无。
  • 返回值:返回底层驱动对象指针。

4.2.13 result

  • 功能:返回底层结果集对象
  • 函数:
const QSqlResult* result() const;
  • 参数:无。
  • 返回值:返回底层结果集对象。

4.2.14 isForwardOnly

  • 功能:判断是否仅向前遍历
  • 函数:
bool isForwardOnly() const;
  • 参数:无。
  • 返回值:满足条件返回 true,否则返回 false。

4.2.15 record

  • 功能:获取当前查询结果的字段结构
  • 函数:
QSqlRecord record() const;
  • 参数:无。
  • 返回值:返回记录对象。

4.2.16 setForwardOnly

  • 功能:设置是否仅向前遍历
  • 函数:
void setForwardOnly(bool forward);
  • 参数:
名称描述
forward(输入)是否仅向前遍历。
  • 返回值:无返回值

4.2.17 exec

  • 功能:执行 SQL 语句
  • 函数:
bool exec(const QString& query);
bool exec();
  • 参数:
名称描述
query(输入)SQL 语句文本
  • 返回值:成功返回 true,失败返回 false。

4.2.18 value

  • 功能:取当前行指定列的值
  • 函数:
QVariant value(int i) const;
QVariant value(const QString& name) const;
  • 参数:
名称描述
i(输入)序号或列序号
name(输入)字段名
  • 返回值:返回 QVariant 值

4.2.19 setNumericalPrecisionPolicy

  • 功能:设置数值精度处理策略
  • 函数:
void setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy precisionPolicy);
  • 参数:
名称描述
precisionPolicy(输入)数值精度处理策略
  • 返回值:无返回值

4.2.20 numericalPrecisionPolicy

  • 功能:获取数值精度处理策略
  • 函数:
QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const;
  • 参数:无。
  • 返回值:返回数值精度处理策略。

4.2.21 seek

  • 功能:按绝对或相对位置定位到指定行
  • 函数:
bool seek(int i, bool relative = false);
  • 参数:
名称描述
i(输入)序号或列序号
relative(输入)(可选)是否相对定位。
  • 返回值:成功返回 true,失败返回 false。

4.2.22 next

  • 功能:移动到结果集下一行
  • 函数:
bool next();
  • 参数:无。
  • 返回值:成功返回 true,失败返回 false。

4.2.23 previous

  • 功能:移动到上一行
  • 函数:
bool previous();
  • 参数:无。
  • 返回值:成功返回 true,失败返回 false。

4.2.24 first

  • 功能:移动到第一行
  • 函数:
bool first();
  • 参数:无。
  • 返回值:成功返回 true,失败返回 false。

4.2.25 last

  • 功能:移动到最后一行
  • 函数:
bool last();
  • 参数:无。
  • 返回值:成功返回 true,失败返回 false。

4.2.26 clear

  • 功能:清空查询、释放结果集
  • 函数:
void clear();
  • 参数:无。
  • 返回值:无返回值

4.2.27 execBatch

  • 功能:按数组批量执行预处理语句(UXDB 驱动不支持 BatchOperations,需逐条执行或事务包裹)
  • 函数:
bool execBatch(BatchExecutionMode mode = ValuesAsRows);
  • 参数:
名称描述
mode(输入)(可选)模式
  • 返回值:成功返回 true,失败返回 false。

4.2.28 prepare

  • 功能:预处理 SQL 语句
  • 函数:
bool prepare(const QString& query);
  • 参数:
名称描述
query(输入)SQL 语句文本
  • 返回值:成功返回 true,失败返回 false。

4.2.29 bindValue

  • 功能:按占位符名或位置绑定参数值
  • 函数:
void bindValue(const QString& placeholder, const QVariant& val, QSql::ParamType type = QSql::In);
void bindValue(int pos, const QVariant& val, QSql::ParamType type = QSql::In);
  • 参数:
名称描述
placeholder(输入)占位符名
val(输入)字段值
type(输入)(可选)参数绑定方向(QSql::In / QSql::Out / QSql::InOut)。
pos(输入)位置或序号
  • 返回值:无返回值

4.2.30 addBindValue

  • 功能:按顺序追加一个绑定参数值
  • 函数:
void addBindValue(const QVariant& val, QSql::ParamType type = QSql::In);
  • 参数:
名称描述
val(输入)字段值
type(输入)(可选)参数绑定方向(QSql::In / QSql::Out / QSql::InOut)。
  • 返回值:无返回值

4.2.31 boundValue

  • 功能:取回已绑定的参数值
  • 函数:
QVariant boundValue(const QString& placeholder) const;
QVariant boundValue(int pos) const;
  • 参数:
名称描述
placeholder(输入)占位符名
pos(输入)位置或序号
  • 返回值:返回 QVariant 值

4.2.32 boundValues

  • 功能:取回全部已绑定参数值
  • 函数:
QMap<QString, QVariant> boundValues() const;
  • 参数:无。
  • 返回值:返回全部已绑定参数值

4.2.33 executedQuery

  • 功能:获取驱动实际执行的 SQL 语句文本
  • 函数:
QString executedQuery() const;
  • 参数:无。
  • 返回值:返回字符串。

4.2.34 lastInsertId

  • 功能:获取最后插入记录的自增 ID
  • 函数:
QVariant lastInsertId() const;
  • 参数:无。
  • 返回值:返回 QVariant 值

4.2.35 finish

  • 功能:结束查询并释放资源(驱动不支持 FinishQuery)
  • 函数:
void finish();
  • 参数:无。
  • 返回值:无返回值

4.2.36 nextResult

  • 功能:移动到下一个结果集(驱动不支持 MultipleResultSets)
  • 函数:
bool nextResult();
  • 参数:无。
  • 返回值:成功返回 true,失败返回 false。

4.3 QSqlRecord(记录(行))

4.3.1 QSqlRecord

  • 功能:构造函数
  • 函数:
QSqlRecord();
QSqlRecord(const QSqlRecord& other);
  • 参数:
名称描述
other(输入)另一个同类型对象,用于拷贝构造或克隆
  • 返回值:构造函数不返回值

4.3.2 value

  • 功能:取指定字段的值
  • 函数:
QVariant value(int i) const;
QVariant value(const QString& name) const;
  • 参数:
名称描述
i(输入)序号或列序号
name(输入)字段名
  • 返回值:返回 QVariant 值

4.3.3 setValue

  • 功能:设置指定字段的值
  • 函数:
void setValue(int i, const QVariant& val);
void setValue(const QString& name, const QVariant& val);
  • 参数:
名称描述
i(输入)序号或列序号
val(输入)字段值
name(输入)字段名
  • 返回值:无返回值

4.3.4 setNull

  • 功能:把指定字段置为空值
  • 函数:
void setNull(int i);
void setNull(const QString& name);
  • 参数:
名称描述
i(输入)序号或列序号
name(输入)字段名
  • 返回值:无返回值

4.3.5 isNull

  • 功能:判断指定字段是否为空值
  • 函数:
bool isNull(int i) const;
bool isNull(const QString& name) const;
  • 参数:
名称描述
i(输入)序号或列序号
name(输入)字段名
  • 返回值:满足条件返回 true,否则返回 false。

4.3.6 indexOf

  • 功能:获取字段名对应的序号
  • 函数:
int indexOf(const QString &name) const;
  • 参数:
名称描述
name(输入)字段名
  • 返回值:返回 int 类型结果。

4.3.7 fieldName

  • 功能:获取指定序号的字段名
  • 函数:
QString fieldName(int i) const;
  • 参数:
名称描述
i(输入)序号或列序号
  • 返回值:返回字符串。

4.3.8 field

  • 功能:按序号或名称取字段对象
  • 函数:
QSqlField field(int i) const;
QSqlField field(const QString &name) const;
  • 参数:
名称描述
i(输入)序号或列序号
name(输入)字段名
  • 返回值:返回字段对象。

4.3.9 isGenerated

  • 功能:判断是否为生成列
  • 函数:
bool isGenerated(int i) const;
bool isGenerated(const QString& name) const;
  • 参数:
名称描述
i(输入)序号或列序号
name(输入)字段名
  • 返回值:满足条件返回 true,否则返回 false。

4.3.10 setGenerated

  • 功能:设置是否生成列
  • 函数:
void setGenerated(const QString& name, bool generated);
void setGenerated(int i, bool generated);
  • 参数:
名称描述
name(输入)字段名
generated(输入)是否生成列
i(输入)序号或列序号
  • 返回值:无返回值

4.3.11 append

  • 功能:追加一个字段
  • 函数:
void append(const QSqlField& field);
  • 参数:
名称描述
field(输入)字段对象。
  • 返回值:无返回值

4.3.12 replace

  • 功能:替换指定位置的字段
  • 函数:
void replace(int pos, const QSqlField& field);
  • 参数:
名称描述
pos(输入)位置或序号
field(输入)字段对象。
  • 返回值:无返回值

4.3.13 insert

  • 功能:在指定位置插入字段
  • 函数:
void insert(int pos, const QSqlField& field);
  • 参数:
名称描述
pos(输入)位置或序号
field(输入)字段对象。
  • 返回值:无返回值

4.3.14 remove

  • 功能:移除指定位置的字段
  • 函数:
void remove(int pos);
  • 参数:
名称描述
pos(输入)位置或序号
  • 返回值:无返回值

4.3.15 isEmpty

  • 功能:判断记录是否为空
  • 函数:
bool isEmpty() const;
  • 参数:无。
  • 返回值:满足条件返回 true,否则返回 false。

4.3.16 contains

  • 功能:判断是否包含指定字段
  • 函数:
bool contains(const QString& name) const;
  • 参数:
名称描述
name(输入)字段名
  • 返回值:满足条件返回 true,否则返回 false。

4.3.17 clear

  • 功能:清空记录中所有字段
  • 函数:
void clear();
  • 参数:无。
  • 返回值:无返回值

4.3.18 clearValues

  • 功能:清空所有字段的值(保留结构)
  • 函数:
void clearValues();
  • 参数:无。
  • 返回值:无返回值

4.3.19 count

  • 功能:获取字段数量
  • 函数:
int count() const;
  • 参数:无。
  • 返回值:返回 int 类型结果。

4.3.20 keyValues

  • 功能:按主键生成字段值记录
  • 函数:
QSqlRecord keyValues(const QSqlRecord &keyFields) const;
  • 参数:
名称描述
keyFields(输入)主键字段记录
  • 返回值:返回记录对象。

4.4 QSqlField(字段(列))

4.4.1 RequiredStatus(枚举)

  • 功能:字段必填状态(未知 / 可选 / 必填)
  • 函数:
Unknown = -1;
Optional = 0;
Required = 1
  • 参数:无。
  • 返回值:枚举常量,用于定义可选取值

4.4.2 QSqlField

  • 功能:构造函数
  • 函数:
explicit QSqlField(const QString& fieldName = QString(), QVariant::Type type = QVariant::Invalid);
QSqlField(const QSqlField& other);
  • 参数:
名称描述
fieldName(输入)(可选)字段名
type(输入)(可选)QVariant 类型
other(输入)另一个同类型对象,用于拷贝构造或克隆
  • 返回值:构造函数不返回值

4.4.3 setValue

  • 功能:设置字段值
  • 函数:
void setValue(const QVariant& value);
  • 参数:
名称描述
value(输入)字段值
  • 返回值:无返回值

4.4.4 value

  • 功能:获取字段值
  • 函数:
inline QVariant value() const { return val; }
  • 参数:无。
  • 返回值:返回 QVariant 值

4.4.5 setName

  • 功能:设置字段名
  • 函数:
void setName(const QString& name);
  • 参数:
名称描述
name(输入)字段名
  • 返回值:无返回值

4.4.6 name

  • 功能:获取字段名
  • 函数:
QString name() const;
  • 参数:无。
  • 返回值:返回字符串。

4.4.7 isNull

  • 功能:判断字段值是否为空
  • 函数:
bool isNull() const;
  • 参数:无。
  • 返回值:满足条件返回 true,否则返回 false。

4.4.8 setReadOnly

  • 功能:设置字段是否只读
  • 函数:
void setReadOnly(bool readOnly);
  • 参数:
名称描述
readOnly(输入)是否只读。
  • 返回值:无返回值

4.4.9 isReadOnly

  • 功能:判断字段是否只读
  • 函数:
bool isReadOnly() const;
  • 参数:无。
  • 返回值:满足条件返回 true,否则返回 false。

4.4.10 clear

  • 功能:清空字段值
  • 函数:
void clear();
  • 参数:无。
  • 返回值:无返回值

4.4.11 type

  • 功能:获取字段的 QVariant 类型
  • 函数:
QVariant::Type type() const;
  • 参数:无。
  • 返回值:返回字段的 QVariant 类型

4.4.12 isAutoValue

  • 功能:判断字段是否自动取值
  • 函数:
bool isAutoValue() const;
  • 参数:无。
  • 返回值:满足条件返回 true,否则返回 false。

4.4.13 setType

  • 功能:设置字段的 QVariant 类型
  • 函数:
void setType(QVariant::Type type);
  • 参数:
名称描述
type(输入)QVariant 类型
  • 返回值:无返回值

4.4.14 setRequiredStatus

  • 功能:设置字段的必填状态
  • 函数:
void setRequiredStatus(RequiredStatus status);
  • 参数:
名称描述
status(输入)状态。
  • 返回值:无返回值

4.4.15 setRequired

  • 功能:设置字段是否必填
  • 函数:
inline void setRequired(bool required) { setRequiredStatus(required ? Required : Optional); }
  • 参数:
名称描述
required(输入)是否必填。
  • 返回值:无返回值

4.4.16 setLength

  • 功能:设置字段长度
  • 函数:
void setLength(int fieldLength);
  • 参数:
名称描述
fieldLength(输入)字段长度。
  • 返回值:无返回值

4.4.17 setPrecision

  • 功能:设置字段精度
  • 函数:
void setPrecision(int precision);
  • 参数:
名称描述
precision(输入)字段精度。
  • 返回值:无返回值

4.4.18 setDefaultValue

  • 功能:设置字段默认值
  • 函数:
void setDefaultValue(const QVariant &value);
  • 参数:
名称描述
value(输入)字段值
  • 返回值:无返回值

4.4.19 setSqlType

  • 功能:设置字段的 SQL 类型
  • 函数:
void setSqlType(int type);
  • 参数:
名称描述
type(输入)SQL 类型值
  • 返回值:无返回值

4.4.20 setGenerated

  • 功能:设置字段是否为生成列
  • 函数:
void setGenerated(bool gen);
  • 参数:
名称描述
gen(输入)是否生成列
  • 返回值:无返回值

4.4.21 setAutoValue

  • 功能:设置字段是否自动取值
  • 函数:
void setAutoValue(bool autoVal);
  • 参数:
名称描述
autoVal(输入)是否自动取值
  • 返回值:无返回值

4.4.22 requiredStatus

  • 功能:获取字段的必填状态
  • 函数:
RequiredStatus requiredStatus() const;
  • 参数:无。
  • 返回值:返回字段必填状态。

4.4.23 length

  • 功能:获取字段长度
  • 函数:
int length() const;
  • 参数:无。
  • 返回值:返回 int 类型结果。

4.4.24 precision

  • 功能:获取字段精度
  • 函数:
int precision() const;
  • 参数:无。
  • 返回值:返回 int 类型结果。

4.4.25 defaultValue

  • 功能:获取字段默认值
  • 函数:
QVariant defaultValue() const;
  • 参数:无。
  • 返回值:返回 QVariant 值

4.4.26 typeID

  • 功能:获取字段的数据库原生类型 ID
  • 函数:
int typeID() const;
  • 参数:无。
  • 返回值:返回 int 类型结果。

4.4.27 isGenerated

  • 功能:判断字段是否为生成列
  • 函数:
bool isGenerated() const;
  • 参数:无。
  • 返回值:满足条件返回 true,否则返回 false。

4.4.28 isValid

  • 功能:判断字段是否有效
  • 函数:
bool isValid() const;
  • 参数:无。
  • 返回值:满足条件返回 true,否则返回 false。

4.5 QSqlError(错误信息)

4.5.1 ErrorType(枚举)

  • 功能:错误类型(无错误 / 连接错误 / 语句错误 / 事务错误 / 未知错误)
  • 函数:
NoError;
ConnectionError;
StatementError;
TransactionError;
UnknownError
  • 参数:无。
  • 返回值:枚举常量,用于定义可选取值

4.5.2 QSqlError

  • 功能:构造函数
  • 函数:
QT_DEPRECATED QSqlError(const QString &driverText, const QString &databaseText, ErrorType type, int number);
QSqlError(const QString &driverText = QString(), const QString &databaseText = QString(), ErrorType type = NoError, const QString &errorCode = QString());
QSqlError(const QSqlError& other);
  • 参数:
名称描述
driverText(输入)驱动层错误文本
databaseText(输入)数据库层错误文本
type(输入)错误类型
number(输入)错误编号
errorCode(输入)(可选)错误码(SQLSTATE)
other(输入)另一个同类型对象,用于拷贝构造或克隆
  • 返回值:构造函数不返回值

4.5.3 driverText

  • 功能:获取驱动层错误文本
  • 函数:
QString driverText() const;
  • 参数:无。
  • 返回值:返回字符串。

4.5.4 databaseText

  • 功能:获取数据库层错误文本(UXDB 服务端返回的消息)
  • 函数:
QString databaseText() const;
  • 参数:无。
  • 返回值:返回字符串。

4.5.5 type

  • 功能:获取错误类型
  • 函数:
ErrorType type() const;
  • 参数:无。
  • 返回值:返回错误类型

4.5.6 number

  • 功能:获取错误编号(QT 5.3 起废弃)
  • 函数:
QT_DEPRECATED int number() const;
  • 参数:无。
  • 返回值:返回 int 类型结果。

4.5.7 nativeErrorCode

  • 功能:获取数据库原生错误码(UXDB 为 SQLSTATE)
  • 函数:
QString nativeErrorCode() const;
  • 参数:无。
  • 返回值:返回字符串。

4.5.8 text

  • 功能:获取拼接后的完整错误文本
  • 函数:
QString text() const;
  • 参数:无。
  • 返回值:返回字符串。

4.5.9 isValid

  • 功能:判断错误对象是否有效
  • 函数:
bool isValid() const;
  • 参数:无。
  • 返回值:满足条件返回 true,否则返回 false。

4.5.10 setDriverText

  • 功能:设置驱动层错误文本(QT 5.1 起废弃)
  • 函数:
QT_DEPRECATED void setDriverText(const QString &driverText);
  • 参数:
名称描述
driverText(输入)驱动层错误文本
  • 返回值:无返回值

4.5.11 setDatabaseText

  • 功能:设置数据库层错误文本(QT 5.1 起废弃)
  • 函数:
QT_DEPRECATED void setDatabaseText(const QString &databaseText);
  • 参数:
名称描述
databaseText(输入)数据库层错误文本
  • 返回值:无返回值

4.5.12 setType

  • 功能:设置错误类型(QT 5.1 起废弃)
  • 函数:
QT_DEPRECATED void setType(ErrorType type);
  • 参数:
名称描述
type(输入)错误类型
  • 返回值:无返回值

4.5.13 setNumber

  • 功能:设置错误编号(QT 5.1 起废弃)
  • 函数:
QT_DEPRECATED void setNumber(int number);
  • 参数:
名称描述
number(输入)错误编号
  • 返回值:无返回值

4.6 QSqlIndex(索引)

4.6.1 QSqlIndex

  • 功能:构造函数
  • 函数:
explicit QSqlIndex(const QString &cursorName = QString(), const QString &name = QString());
QSqlIndex(const QSqlIndex &other);
  • 参数:
名称描述
cursorName(输入)(可选)游标名称
name(输入)(可选)索引名
other(输入)另一个同类型对象,用于拷贝构造或克隆
  • 返回值:构造函数不返回值

4.6.2 setCursorName

  • 功能:设置游标名称
  • 函数:
void setCursorName(const QString &cursorName);
  • 参数:
名称描述
cursorName(输入)游标名称
  • 返回值:无返回值

4.6.3 cursorName

  • 功能:游标名称
  • 函数:
inline QString cursorName() const { return cursor; }
  • 参数:无。
  • 返回值:返回字符串。

4.6.4 setName

  • 功能:设置索引名
  • 函数:
void setName(const QString& name);
  • 参数:
名称描述
name(输入)索引名
  • 返回值:无返回值

4.6.5 name

  • 功能:获取索引名
  • 函数:
inline QString name() const { return nm; }
  • 参数:无。
  • 返回值:返回字符串。

4.6.6 append

  • 功能:追加索引字段
  • 函数:
void append(const QSqlField &field);
void append(const QSqlField &field, bool desc);
  • 参数:
名称描述
field(输入)字段对象。
desc(输入)是否降序。
  • 返回值:无返回值

4.6.7 isDescending

  • 功能:判断索引字段是否降序
  • 函数:
bool isDescending(int i) const;
  • 参数:
名称描述
i(输入)序号或列序号
  • 返回值:满足条件返回 true,否则返回 false。

4.6.8 setDescending

  • 功能:设置索引字段是否降序
  • 函数:
void setDescending(int i, bool desc);
  • 参数:
名称描述
i(输入)序号或列序号
desc(输入)是否降序。
  • 返回值:无返回值

4.7 QSqlQueryModel(只读查询模型)

4.7.1 QSqlQueryModel

  • 功能:构造函数
  • 函数:
explicit QSqlQueryModel(QObject *parent = Q_NULLPTR);
  • 参数:
名称描述
parent(输入)(可选)父对象。
  • 返回值:构造函数不返回值

4.7.2 rowCount

  • 功能:获取行数
  • 函数:
int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
  • 参数:
名称描述
parent(输入)(可选)父对象。
  • 返回值:返回 int 类型结果。

4.7.3 columnCount

  • 功能:获取列数
  • 函数:
int columnCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
  • 参数:
名称描述
parent(输入)(可选)父对象。
  • 返回值:返回 int 类型结果。

4.7.4 record

  • 功能:获取记录结构
  • 函数:
QSqlRecord record(int row) const;
QSqlRecord record() const;
  • 参数:
名称描述
row(输入)行号
  • 返回值:返回记录对象。

4.7.5 data

  • 功能:获取指定单元格的数据
  • 函数:
QVariant data(const QModelIndex &item, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
  • 参数:
名称描述
item(输入)模型索引。
role(输入)(可选)数据角色。
  • 返回值:返回 QVariant 值

4.7.6 headerData

  • 功能:获取表头显示文本
  • 函数:
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
  • 参数:
名称描述
section(输入)段序号
orientation(输入)方向
role(输入)(可选)数据角色
  • 返回值:返回 QVariant 值

4.7.7 setHeaderData

  • 功能:设置表头显示文本
  • 函数:
bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole) Q_DECL_OVERRIDE;
  • 参数:
名称描述
section(输入)段序号
orientation(输入)方向
value(输入)字段值
role(输入)(可选)数据角色
  • 返回值:成功返回 true,失败返回 false。

4.7.8 insertColumns

  • 功能:在指定位置插入多个字段
  • 函数:
bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
  • 参数:
名称描述
column(输入)列号
count(输入)数量。
parent(输入)(可选)父对象。
  • 返回值:成功返回 true,失败返回 false。

4.7.9 removeColumns

  • 功能:移除多个字段
  • 函数:
bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
  • 参数:
名称描述
column(输入)列号
count(输入)数量
parent(输入)(可选)父对象
  • 返回值:成功返回 true,失败返回 false。

4.7.10 setQuery

  • 功能:设置模型执行的查询
  • 函数:
void setQuery(const QSqlQuery &query);
void setQuery(const QString &query, const QSqlDatabase &db = QSqlDatabase());
  • 参数:
名称描述
query(输入)SQL 语句文本
db(输入)(可选)数据库连接对象
  • 返回值:无返回值

4.7.11 query

  • 功能:获取模型当前的查询对象
  • 函数:
QSqlQuery query() const;
  • 参数:无。
  • 返回值:返回查询对象。

4.7.12 clear

  • 功能:清空模型数据
  • 函数:
virtual void clear();
  • 参数:无。
  • 返回值:无返回值

4.7.13 lastError

  • 功能:返回最近一次错误信息
  • 函数:
QSqlError lastError() const;
  • 参数:无。
  • 返回值:返回最近一次错误信息 QSqlError 对象。

4.7.14 fetchMore

  • 功能:分页取回更多数据
  • 函数:
void fetchMore(const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
  • 参数:
名称描述
parent(输入)(可选)父对象。
  • 返回值:无返回值

4.7.15 canFetchMore

  • 功能:判断是否还有更多数据可分页取回
  • 函数:
bool canFetchMore(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
  • 参数:
名称描述
parent(输入)(可选)父对象。
  • 返回值:满足条件返回 true,否则返回 false。

4.8 QSqlTableModel(单表可编辑模型)

4.8.1 EditStrategy(枚举)

  • 功能:编辑提交策略(即时提交 / 行提交 / 手动提交)
  • 函数:
OnFieldChange;
OnRowChange;
OnManualSubmit
  • 参数:无。
  • 返回值:枚举常量,用于定义可选取值

4.8.2 QSqlTableModel

  • 功能:构造函数
  • 函数:
explicit QSqlTableModel(QObject *parent = Q_NULLPTR, QSqlDatabase db = QSqlDatabase());
  • 参数:
名称描述
parent(输入)(可选)父对象。
db(输入)(可选)数据库连接对象。
  • 返回值:构造函数不返回值

4.8.3 setTable

  • 功能:设置模型关联的数据表
  • 函数:
virtual void setTable(const QString &tableName);
  • 参数:
名称描述
tableName(输入)表名
  • 返回值:无返回值

4.8.4 tableName

  • 功能:获取模型关联的数据表名
  • 函数:
QString tableName() const;
  • 参数:无。
  • 返回值:返回字符串。

4.8.5 flags

  • 功能:获取指定项的标志位(决定单元格是否可编辑 / 可选)
  • 函数:
Qt::ItemFlags flags(const QModelIndex &index) const Q_DECL_OVERRIDE;
  • 参数:
名称描述
index(输入)模型索引
  • 返回值:返回标志位。

4.8.6 record

  • 功能:获取指定行的记录结构
  • 函数:
QSqlRecord record() const;
QSqlRecord record(int row) const;
  • 参数:
名称描述
row(输入)行号
  • 返回值:返回记录对象。

4.8.7 data

  • 功能:获取指定单元格的数据
  • 函数:
QVariant data(const QModelIndex &idx, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
  • 参数:
名称描述
idx(输入)模型索引
role(输入)(可选)数据角色
  • 返回值:返回 QVariant 值

4.8.8 setData

  • 功能:设置指定单元格的数据
  • 函数:
bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) Q_DECL_OVERRIDE;
  • 参数:
名称描述
index(输入)模型索引
value(输入)字段值
role(输入)(可选)数据角色。
  • 返回值:成功返回 true,失败返回 false。

4.8.9 headerData

  • 功能:获取表头显示文本
  • 函数:
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
  • 参数:
名称描述
section(输入)段序号
orientation(输入)方向。
role(输入)(可选)数据角色。
  • 返回值:返回 QVariant 值

4.8.10 isDirty

  • 功能:判断指定行是否有未提交的修改
  • 函数:
bool isDirty() const;
bool isDirty(const QModelIndex &index) const;
  • 参数:
名称描述
index(输入)模型索引。
  • 返回值:满足条件返回 true,否则返回 false。

4.8.11 clear

  • 功能:清空
  • 函数:
void clear() Q_DECL_OVERRIDE;
  • 参数:无。
  • 返回值:无返回值

4.8.12 setEditStrategy

  • 功能:设置编辑提交策略
  • 函数:
virtual void setEditStrategy(EditStrategy strategy);
  • 参数:
名称描述
strategy(输入)策略
  • 返回值:无返回值

4.8.13 editStrategy

  • 功能:获取编辑提交策略
  • 函数:
EditStrategy editStrategy() const;
  • 参数:无。
  • 返回值:返回编辑提交策略。

4.8.14 primaryKey

  • 功能:获取模型的主键索引
  • 函数:
QSqlIndex primaryKey() const;
  • 参数:无。
  • 返回值:返回索引对象。

4.8.15 database

  • 功能:获取模型使用的数据库连接
  • 函数:
QSqlDatabase database() const;
  • 参数:无。
  • 返回值:返回模型使用的数据库连接。

4.8.16 fieldIndex

  • 功能:获取字段名对应的列号
  • 函数:
int fieldIndex(const QString &fieldName) const;
  • 参数:
名称描述
fieldName(输入)字段名
  • 返回值:返回 int 类型结果。

4.8.17 sort

  • 功能:设置排序字段的排序方向
  • 函数:
void sort(int column, Qt::SortOrder order) Q_DECL_OVERRIDE;
  • 参数:
名称描述
column(输入)列号
order(输入)排序方向。
  • 返回值:无返回值

4.8.18 setSort

  • 功能:设置排序字段与方向
  • 函数:
virtual void setSort(int column, Qt::SortOrder order);
  • 参数:
名称描述
column(输入)列号
order(输入)排序方向。
  • 返回值:无返回值

4.8.19 filter

  • 功能:获取过滤条件
  • 函数:
QString filter() const;
  • 参数:无。
  • 返回值:返回字符串。

4.8.20 setFilter

  • 功能:设置过滤条件(WHERE 子句)
  • 函数:
virtual void setFilter(const QString &filter);
  • 参数:
名称描述
filter(输入)过滤条件(WHERE 子句)
  • 返回值:无返回值

4.8.21 rowCount

  • 功能:行数量
  • 函数:
int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
  • 参数:
名称描述
parent(输入)(可选)父对象。
  • 返回值:返回 int 类型结果。

4.8.22 removeColumns

  • 功能:移除多个字段
  • 函数:
bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
  • 参数:
名称描述
column(输入)列号
count(输入)数量。
parent(输入)(可选)父对象。
  • 返回值:成功返回 true,失败返回 false。

4.8.23 removeRows

  • 功能:删除多行
  • 函数:
bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
  • 参数:
名称描述
row(输入)行号
count(输入)数量
parent(输入)(可选)父对象
  • 返回值:成功返回 true,失败返回 false。

4.8.24 insertRows

  • 功能:插入多行
  • 函数:
bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
  • 参数:
名称描述
row(输入)行号
count(输入)数量。
parent(输入)(可选)父对象。
  • 返回值:成功返回 true,失败返回 false。

4.8.25 insertRecord

  • 功能:插入记录
  • 函数:
bool insertRecord(int row, const QSqlRecord &record);
  • 参数:
名称描述
row(输入)行号
record(输入)记录对象
  • 返回值:成功返回 true,失败返回 false。

4.8.26 setRecord

  • 功能:用记录数据填充指定行
  • 函数:
bool setRecord(int row, const QSqlRecord &record);
  • 参数:
名称描述
row(输入)行号
record(输入)记录对象。
  • 返回值:成功返回 true,失败返回 false。

4.8.27 revertRow

  • 功能:撤销指定行的修改
  • 函数:
virtual void revertRow(int row);
  • 参数:
名称描述
row(输入)行号
  • 返回值:无返回值

4.8.28 select

  • 功能:执行查询刷新模型数据
  • 函数:
virtual bool select();
  • 参数:无。
  • 返回值:成功返回 true,失败返回 false。

4.8.29 selectRow

  • 功能:查询行
  • 函数:
virtual bool selectRow(int row);
  • 参数:
名称描述
row(输入)行号
  • 返回值:成功返回 true,失败返回 false。

4.8.30 submit

  • 功能:提交指定行的修改
  • 函数:
bool submit() Q_DECL_OVERRIDE;
  • 参数:无。
  • 返回值:成功返回 true,失败返回 false。

4.8.31 revert

  • 功能:撤销指定行的修改
  • 函数:
void revert() Q_DECL_OVERRIDE;
  • 参数:无。
  • 返回值:无返回值

4.8.32 submitAll

  • 功能:提交全部未保存的修改
  • 函数:
bool submitAll();
  • 参数:无。
  • 返回值:成功返回 true,失败返回 false。

4.8.33 revertAll

  • 功能:撤销全部未提交的修改
  • 函数:
void revertAll();
  • 参数:无。
  • 返回值:无返回值

4.8.34 primeInsert

  • 功能:初始化待插入的新行(供子类重写)
  • 函数:
void primeInsert(int row, QSqlRecord &record);
  • 参数:
名称描述
row(输入)行号
record(输入)记录对象。
  • 返回值:无返回值

4.8.35 beforeInsert

  • 功能:插入行之前触发的信号
  • 函数:
void beforeInsert(QSqlRecord &record);
  • 参数:
名称描述
record(输入)记录对象。
  • 返回值:无返回值

4.8.36 beforeUpdate

  • 功能:更新行之前触发的信号
  • 函数:
void beforeUpdate(int row, QSqlRecord &record);
  • 参数:
名称描述
row(输入)行号
record(输入)记录对象。
  • 返回值:无返回值

4.8.37 beforeDelete

  • 功能:删除行之前触发的信号
  • 函数:
void beforeDelete(int row);
  • 参数:
名称描述
row(输入)行号
  • 返回值:无返回值

4.9 QSqlRelationalTableModel(外键关联表模型)

4.9.1 JoinMode(枚举)

  • 功能:多表关联连接方式(内连接 / 左外连接)
  • 函数:
InnerJoin;
LeftJoin
  • 参数:无。
  • 返回值:枚举常量,用于定义可选取值

4.9.2 QSqlRelationalTableModel

  • 功能:构造函数
  • 函数:
explicit QSqlRelationalTableModel(QObject *parent = Q_NULLPTR, QSqlDatabase db = QSqlDatabase());
  • 参数:
名称描述
parent(输入)(可选)父对象。
db(输入)(可选)数据库连接对象。
  • 返回值:构造函数不返回值

4.9.3 data

  • 功能:数据
  • 函数:
QVariant data(const QModelIndex &item, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
  • 参数:
名称描述
item(输入)模型索引。
role(输入)(可选)数据角色。
  • 返回值:返回 QVariant 值

4.9.4 setData

  • 功能:设置数据
  • 函数:
bool setData(const QModelIndex &item, const QVariant &value, int role = Qt::EditRole) Q_DECL_OVERRIDE;
  • 参数:
名称描述
item(输入)模型索引。
value(输入)字段值
role(输入)(可选)数据角色。
  • 返回值:成功返回 true,失败返回 false。

4.9.5 removeColumns

  • 功能:移除多个字段
  • 函数:
bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
  • 参数:
名称描述
column(输入)列号
count(输入)数量。
parent(输入)(可选)父对象。
  • 返回值:成功返回 true,失败返回 false。

4.9.6 clear

  • 功能:清空
  • 函数:
void clear() Q_DECL_OVERRIDE;
  • 参数:无。
  • 返回值:无返回值

4.9.7 select

  • 功能:执行多表关联查询刷新模型
  • 函数:
bool select() Q_DECL_OVERRIDE;
  • 参数:无。
  • 返回值:成功返回 true,失败返回 false。

4.9.8 setTable

  • 功能:设置模型关联的主表
  • 函数:
void setTable(const QString &tableName) Q_DECL_OVERRIDE;
  • 参数:
名称描述
tableName(输入)表名
  • 返回值:无返回值

4.9.9 setRelation

  • 功能:设置指定列的外键关系
  • 函数:
virtual void setRelation(int column, const QSqlRelation &relation);
  • 参数:
名称描述
column(输入)列号
relation(输入)外键关系。
  • 返回值:无返回值

4.9.10 relation

  • 功能:获取指定列的外键关系
  • 函数:
QSqlRelation relation(int column) const;
  • 参数:
名称描述
column(输入)列号
  • 返回值:返回外键关系对象。

4.9.11 relationModel

  • 功能:获取外键关联的从表模型
  • 函数:
virtual QSqlTableModel *relationModel(int column) const;
  • 参数:
名称描述
column(输入)列号
  • 返回值:构造函数不返回值

4.9.12 setJoinMode

  • 功能:设置多表关联时的连接方式
  • 函数:
void setJoinMode( QSqlRelationalTableModel::JoinMode joinMode );
  • 参数:
名称描述
joinMode(输入)连接方式
  • 返回值:无返回值

4.9.13 revertRow

  • 功能:还原行
  • 函数:
void revertRow(int row) Q_DECL_OVERRIDE;
  • 参数:
名称描述
row(输入)行号
  • 返回值:无返回值

4.10 QSqlRelation(外键关系描述)

4.10.1 QSqlRelation

  • 功能:构造函数
  • 函数:
QSqlRelation() {}
QSqlRelation(const QString &aTableName, const QString &indexCol, const QString &displayCol) : tName(aTableName), iColumn(indexCol), dColumn(displayCol) {}
  • 参数:
名称描述
aTableName(输入)表名
indexCol(输入)索引列名
displayCol(输入)显示列名
  • 返回值:构造函数不返回值

4.10.2 tableName

  • 功能:获取关联的表名
  • 函数:
inline QString tableName() const { return tName; }
  • 参数:无。
  • 返回值:返回字符串。

4.10.3 indexColumn

  • 功能:获取用于取值的列名
  • 函数:
inline QString indexColumn() const { return iColumn; }
  • 参数:无。
  • 返回值:返回字符串。

4.10.4 displayColumn

  • 功能:获取用于显示的列名
  • 函数:
inline QString displayColumn() const { return dColumn; }
  • 参数:无。
  • 返回值:返回字符串。

4.10.5 isValid

  • 功能:判断关联关系是否有效
  • 函数:
inline bool isValid() const { return !(tName.isEmpty() || iColumn.isEmpty() || dColumn.isEmpty()); }
  • 参数:无。
  • 返回值:满足条件返回 true,否则返回 false。

4.11 QSqlRelationalDelegate(外键下拉委托)

4.11.1 QSqlRelationalDelegate

  • 功能:构造函数
  • 函数:
explicit QSqlRelationalDelegate(QObject *aParent = 0) : QItemDelegate(aParent) {}
  • 参数:
名称描述
aParent(输入)(可选)父对象。
  • 返回值:构造函数不返回值

4.11.2 createEditor

  • 功能:为外键列创建下拉框编辑器
  • 函数:
QWidget *createEditor(QWidget *aParent, const QStyleOptionViewItem &option, const QModelIndex &index) const;
  • 参数:
名称描述
aParent(输入)父对象。
option(输入)选项。
index(输入)模型索引。
  • 返回值:构造函数不返回值

4.11.3 setModelData

  • 功能:把下拉框选择写回模型
  • 函数:
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const;
  • 参数:
名称描述
editor(输入)编辑器控件。
model(输入)模型对象。
index(输入)模型索引。
  • 返回值:无返回值