PySide6.QtSql.QSqlField

class QSqlField

QSqlField 类用于操作 SQL 数据库表和视图中的字段。更多

概要

属性

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

QSqlField 表示数据库表或视图中单个列的特性,例如数据类型和列名。字段还包含数据库列的值,可以查看或更改。

字段数据值存储为 QVariants。不允许使用不兼容的类型。例如:

field = QSqlField("age", QMetaType.fromType())
    field.setValue(QPixmap()) # WRONG

然而,该字段将尝试在可能的情况下将某些数据类型转换为字段数据类型:

field = QSqlField("age", QMetaType.fromType())
    field.setValue(QString("123")) # casts QString to int

QSqlField 对象在应用程序代码中很少显式创建。它们通常通过已经包含字段列表的 QSqlRecord 间接访问。例如:

query = QSqlQuery()            ...

record = query.record()
field = record.field("country")

一个QSqlField对象可以提供一些关于字段的元数据,例如,它的name(),变体类型(),length()precision()defaultValue(),typeID(),以及它的requiredStatus()isGenerated()isReadOnly()。可以检查字段的数据以查看它是否isNull(),并检索它的value()。在编辑时,可以使用setValue()设置数据,或使用clear()将其设置为NULL。

另请参阅

QSqlRecord

class RequiredStatus

指定字段是必需的还是可选的。

常量

描述

QSqlField.Required

在插入记录时必须指定该字段。

QSqlField.Optional

插入记录时不必指定字段。

QSqlField.Unknown

数据库驱动程序无法确定该字段是必需的还是可选的。

另请参阅

requiredStatus

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property autoValueᅟ: bool

如果该值是由数据库自动生成的,例如自增主键值,则该值为true

注意

使用ODBC驱动程序时,由于ODBC API的限制,isAutoValue()字段仅在通过执行SELECT查询获得的QSqlRecord中的QSqlField中填充。在通过record()primaryIndex()返回的QSqlRecord中的QSqlField中,该字段为false

Access functions:
property defaultValueᅟ: object

此属性保存此字段的默认值。只有一些数据库驱动程序支持此属性。目前这些驱动程序包括SQLite、PostgreSQL、Oracle和MySQL/MariaDB。

Access functions:
property generatedᅟ: bool

此属性保存生成的状态。如果generatedfalse,则不会为该字段生成SQL;否则,诸如QSqlQueryModelQSqlTableModel的Qt类将为此字段生成SQL。

Access functions:
property lengthᅟ: int

此属性保存字段的长度。

如果值为负数,则表示无法从数据库获取信息。对于字符串,这是字符串可以容纳的最大字符数;对于其他类型,其含义有所不同。

Access functions:
property metaTypeᅟ: QMetaType

此属性保存字段在数据库中存储的类型。请注意,实际值可能具有不同的类型,无法存储在长整型或双精度型中的数值通常存储为字符串以防止精度损失。

Access functions:
property nameᅟ: str

此属性保存字段的名称。这可以是列名或用户给定的别名。

Access functions:
property precisionᅟ: int

此属性保存字段的精度;这仅对数值类型有意义。

如果返回值为负数,则表示无法从数据库中获得该信息。

Access functions:
property readOnlyᅟ: bool

当此属性为true时,此QSqlField无法被修改。只读字段无法使用setValue()设置其值,也无法使用clear()清除为NULL。

Access functions:
property requiredStatusᅟ: QSqlField.RequiredStatus

此属性保存字段的RequiredStatus。如果必填字段没有值,INSERT操作将失败。

另请参阅

RequiredStatus

Access functions:
property tableNameᅟ: str

此属性保存字段的tableName

注意

使用QPSQL驱动程序时,由于libpq库的限制,tableName()字段不会在由仅向前查询的record()获得的QSqlRecord中的QSqlField中填充。

Access functions:
property valueᅟ: object

此属性将value作为QVariant持有

value设置为只读的QSqlField是无效操作。如果value的数据类型与字段的当前数据类型不同,系统会尝试将其转换为适当的类型。这在赋值时保留了字段的数据类型,例如将QString转换为整数数据类型。

要将值设置为NULL,请使用clear()

Access functions:
__init__(other)
Parameters:

其他QSqlField

构造other的副本。

__init__([fieldName=""[, type=QMetaType()[, tableName=""]]])
Parameters:
  • fieldName – str

  • typeQMetaType

  • tableName – str

这是一个重载函数。

table中构造一个名为fieldName的空字段,类型为type

clear()

清除字段的值并将其设置为NULL。如果字段是只读的,则不会发生任何变化。

defaultValue()
Return type:

对象

设置defaultValue的值。

另请参阅

setDefaultValue()

属性 defaultValueᅟ 的获取器。

isAutoValue()
Return type:

布尔

返回 autoValue 的值。

属性 autoValueᅟ 的获取器。

isGenerated()
Return type:

布尔

返回 generated 的值。

属性 generatedᅟ 的获取器。

isNull()
Return type:

布尔

如果字段的值为NULL,则返回true;否则返回false。

另请参阅

value

isReadOnly()
Return type:

布尔

返回 readOnly 的值。

属性 readOnlyᅟ 的获取器。

isValid()
Return type:

布尔

如果字段的变体类型有效,则返回true;否则返回false

length()
Return type:

整数

返回长度的值。

另请参阅

setLength()

属性 lengthᅟ 的获取器。

metaType()
Return type:

QMetaType

返回metaType的值。

另请参阅

setMetaType()

属性 metaTypeᅟ 的获取器。

name()
Return type:

字符串

返回名称的值。

另请参阅

setName()

获取属性 nameᅟ 的Getter。

__ne__(other)
Parameters:

其他QSqlField

Return type:

布尔

如果字段不等于other,则返回true;否则返回false。

__eq__(other)
Parameters:

其他QSqlField

Return type:

布尔

如果字段等于other,则返回true;否则返回false。

precision()
Return type:

整数

返回精度值。

另请参阅

setPrecision()

属性 precisionᅟ 的获取器。

requiredStatus()
Return type:

RequiredStatus

返回requiredStatus的值。

另请参阅

setRequiredStatus()

属性 requiredStatusᅟ 的获取器。

setAutoValue(autoVal)
Parameters:

autoVal – 布尔值

autoValue 设置为 autoVal

另请参阅

isAutoValue()

属性 autoValueᅟ 的设置器。

setDefaultValue(value)
Parameters:

– 对象

defaultValue设置为value

另请参阅

defaultValue()

属性 defaultValueᅟ 的设置器。

setGenerated(gen)
Parameters:

gen – 布尔值

generated 设置为 gen

另请参阅

isGenerated()

属性 generatedᅟ 的设置器。

setLength(fieldLength)
Parameters:

fieldLength – int

length设置为fieldLength

另请参阅

length()

属性 lengthᅟ 的设置器。

setMetaType(type)
Parameters:

类型QMetaType

metaType设置为type

另请参阅

metaType()

属性 metaTypeᅟ 的设置器。

setName(name)
Parameters:

name – str

name设置为name

另请参阅

name()

属性 nameᅟ 的设置器。

setPrecision(precision)
Parameters:

精度 – int

precision设置为precision

另请参阅

precision()

属性 precisionᅟ 的设置器。

setReadOnly(readOnly)
Parameters:

readOnly – 布尔值

readOnly 设置为 readOnly

另请参阅

isReadOnly()

属性 readOnlyᅟ 的设置器。

setRequired(required)
Parameters:

必填 – bool

如果required为真,则将此字段的必填状态设置为Required;否则将其设置为Optional

另请参阅

requiredStatus

setRequiredStatus(status)
Parameters:

状态RequiredStatus

requiredStatus设置为required

另请参阅

requiredStatus()

属性 requiredStatusᅟ 的设置器。

setSqlType(type)
Parameters:

类型 – int

注意

此函数已弃用。

此内部值不再使用。

setTableName(tableName)
Parameters:

tableName – str

tableName 设置为 tableName

另请参阅

tableName()

属性 tableNameᅟ 的设置器。

setValue(value)
Parameters:

– 对象

value设置为value

另请参阅

value()

属性 valueᅟ 的设置器。

swap(other)
Parameters:

其他QSqlField

将此字段与 other 交换。此函数非常快且永远不会失败。

tableName()
Return type:

字符串

返回表名。

另请参阅

setTableName()

属性 tableNameᅟ 的获取器。

typeID()
Return type:

整数

注意

此函数已弃用。

此内部值不再使用。

返回字段的类型ID。

如果返回值为负数,则表示无法从数据库中获得该信息。

value()
Return type:

对象

返回value的值。

另请参阅

setValue()

属性 valueᅟ 的获取器。