QSql Namespace
QSql 命名空间包含Qt SQL 模块中使用的各种标识符。更多
头文件: | #include <QSql> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Sql) target_link_libraries(mytarget PRIVATE Qt6::Sql) |
qmake: | QT += sql |
- QSql 是数据库类的一部分。
类型
enum | Location { BeforeFirstRow, AfterLastRow } |
enum | NumericalPrecisionPolicy { LowPrecisionInt32, LowPrecisionInt64, LowPrecisionDouble, HighPrecision } |
flags | ParamType |
enum | ParamTypeFlag { In, Out, InOut, Binary } |
enum | TableType { Tables, SystemTables, Views, AllTables } |
参见 Qt SQL.
类型文档
enum QSql::Location
该枚举类型描述特殊的 SQL 导航位置:
常量 | 值 | 描述 |
---|---|---|
QSql::BeforeFirstRow | -1 | 第一条记录之前。 |
QSql::AfterLastRow | -2 | 在最后一条记录之后。 |
另请参阅 QSqlQuery::at().
enum QSql::NumericalPrecisionPolicy
数据库中数值的精确度可能高于其相应的 C++ 类型。此枚举列出了在应用程序中表示此类数值的策略。
常数 | 值 | 说明 |
---|---|---|
QSql::LowPrecisionInt32 | 0x01 | 强制 32 位整数值。如果是浮点数,小数部分会被静默丢弃。 |
QSql::LowPrecisionInt64 | 0x02 | 强制执行 64 位整数值。如果是浮点数,小数部分会被静默舍弃。 |
QSql::LowPrecisionDouble | 0x04 | 强制double 值。这是默认策略。 |
QSql::HighPrecision | 0 | 将使用字符串来保持精度。 |
注意:发生溢出时的实际行为与驱动程序有关。在这种情况下,Oracle 数据库只会返回错误。
枚举 QSql::ParamTypeFlag
flags QSql::ParamType
该枚举用于指定绑定参数的类型。
常量 | 值 | 说明 |
---|---|---|
QSql::In | 0x00000001 | 绑定参数用于将数据输入数据库。 |
QSql::Out | 0x00000002 | 绑定参数用于从数据库接收数据。 |
QSql::InOut | In | Out | 绑定参数用于将数据输入数据库;在执行查询时将被输出数据覆盖。 |
QSql::Binary | 0x00000004 | 如果要表示传输的数据是原始二进制数据,则必须将此标志与其他标志之一进行 OR 运算。 |
ParamType 类型是QFlags<ParamTypeFlag> 的类型定义。它存储 ParamTypeFlag 值的 OR 组合。
enum QSql::TableType
该枚举类型描述 SQL 表的类型。
常量 | 值 | 描述 |
---|---|---|
QSql::Tables | 0x01 | 用户可见的所有表。 |
QSql::SystemTables | 0x02 | 数据库使用的内部表。 |
QSql::Views | 0x04 | 用户可见的所有视图。 |
QSql::AllTables | 0xff | 以上所有。 |
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.