PySide6.QtSql.QSqlField¶
- class QSqlField¶
QSqlField类用于操作 SQL 数据库表和视图中的字段。更多…概要¶
属性¶
方法¶
def
__init__()def
clear()def
defaultValue()def
isAutoValue()def
isGenerated()def
isNull()def
isReadOnly()def
isValid()def
length()def
metaType()def
name()def
__ne__()def
__eq__()def
precision()def
requiredStatus()def
setAutoValue()def
setGenerated()def
setLength()def
setMetaType()def
setName()def
setPrecision()def
setReadOnly()def
setRequired()def
setSqlType()def
setTableName()def
setValue()def
swap()def
tableName()def
typeID()def
value()
注意
本文档可能包含从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。另请参阅
- class RequiredStatus¶
指定字段是必需的还是可选的。
常量
描述
QSqlField.Required
在插入记录时必须指定该字段。
QSqlField.Optional
插入记录时不必指定字段。
QSqlField.Unknown
数据库驱动程序无法确定该字段是必需的还是可选的。
另请参阅
注意
当使用
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¶
此属性保存生成的状态。如果
generated为false,则不会为该字段生成SQL;否则,诸如QSqlQueryModel和QSqlTableModel的Qt类将为此字段生成SQL。- Access functions:
- property lengthᅟ: int¶
此属性保存字段的长度。
如果值为负数,则表示无法从数据库获取信息。对于字符串,这是字符串可以容纳的最大字符数;对于其他类型,其含义有所不同。
- Access functions:
此属性保存字段在数据库中存储的类型。请注意,实际值可能具有不同的类型,无法存储在长整型或双精度型中的数值通常存储为字符串以防止精度损失。
- Access functions:
- property nameᅟ: str¶
此属性保存字段的名称。这可以是列名或用户给定的别名。
- property precisionᅟ: int¶
此属性保存字段的精度;这仅对数值类型有意义。
如果返回值为负数,则表示无法从数据库中获得该信息。
- Access functions:
- property readOnlyᅟ: bool¶
当此属性为
true时,此QSqlField无法被修改。只读字段无法使用setValue()设置其值,也无法使用clear()清除为NULL。- Access functions:
- property requiredStatusᅟ: QSqlField.RequiredStatus¶
此属性保存字段的
RequiredStatus。如果必填字段没有值,INSERT操作将失败。另请参阅
- 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:
构造
other的副本。- __init__([fieldName=""[, type=QMetaType()[, tableName=""]]])
- Parameters:
fieldName – str
type –
QMetaTypetableName – str
这是一个重载函数。
在
table中构造一个名为fieldName的空字段,类型为type。- clear()¶
清除字段的值并将其设置为NULL。如果字段是只读的,则不会发生任何变化。
- defaultValue()¶
- Return type:
对象
设置defaultValue的值。
另请参阅
属性
defaultValueᅟ的获取器。- isAutoValue()¶
- Return type:
布尔
返回
autoValue的值。属性
autoValueᅟ的获取器。- isGenerated()¶
- Return type:
布尔
返回
generated的值。属性
generatedᅟ的获取器。- isNull()¶
- Return type:
布尔
如果字段的值为NULL,则返回
true;否则返回false。另请参阅
- isReadOnly()¶
- Return type:
布尔
返回
readOnly的值。属性
readOnlyᅟ的获取器。- isValid()¶
- Return type:
布尔
如果字段的变体类型有效,则返回
true;否则返回false。- length()¶
- Return type:
整数
返回长度的值。
另请参阅
属性
lengthᅟ的获取器。返回metaType的值。
另请参阅
属性
metaTypeᅟ的获取器。- name()¶
- Return type:
字符串
返回名称的值。
另请参阅
获取属性
nameᅟ的Getter。如果字段不等于
other,则返回true;否则返回false。如果字段等于
other,则返回true;否则返回false。- precision()¶
- Return type:
整数
返回精度值。
另请参阅
属性
precisionᅟ的获取器。- requiredStatus()¶
- Return type:
返回requiredStatus的值。
另请参阅
属性
requiredStatusᅟ的获取器。- setAutoValue(autoVal)¶
- Parameters:
autoVal – 布尔值
将
autoValue设置为autoVal。另请参阅
属性
autoValueᅟ的设置器。- setDefaultValue(value)¶
- Parameters:
值 – 对象
将
defaultValue设置为value。另请参阅
属性
defaultValueᅟ的设置器。- setGenerated(gen)¶
- Parameters:
gen – 布尔值
将
generated设置为gen。另请参阅
属性
generatedᅟ的设置器。- setLength(fieldLength)¶
- Parameters:
fieldLength – int
将
length设置为fieldLength。另请参阅
属性
lengthᅟ的设置器。将
metaType设置为type。另请参阅
属性
metaTypeᅟ的设置器。- setName(name)¶
- Parameters:
name – str
将
name设置为name。另请参阅
属性
nameᅟ的设置器。- setPrecision(precision)¶
- Parameters:
精度 – int
将
precision设置为precision。另请参阅
属性
precisionᅟ的设置器。- setReadOnly(readOnly)¶
- Parameters:
readOnly – 布尔值
将
readOnly设置为readOnly。另请参阅
属性
readOnlyᅟ的设置器。- setRequired(required)¶
- Parameters:
必填 – bool
如果
required为真,则将此字段的必填状态设置为Required;否则将其设置为Optional。另请参阅
- setRequiredStatus(status)¶
- Parameters:
状态 –
RequiredStatus
将
requiredStatus设置为required。另请参阅
属性
requiredStatusᅟ的设置器。- setSqlType(type)¶
- Parameters:
类型 – int
注意
此函数已弃用。
此内部值不再使用。
- setTableName(tableName)¶
- Parameters:
tableName – str
将
tableName设置为tableName。另请参阅
属性
tableNameᅟ的设置器。- setValue(value)¶
- Parameters:
值 – 对象
将
value设置为value。另请参阅
属性
valueᅟ的设置器。将此字段与
other交换。此函数非常快且永远不会失败。- tableName()¶
- Return type:
字符串
返回表名。
另请参阅
属性
tableNameᅟ的获取器。- typeID()¶
- Return type:
整数
注意
此函数已弃用。
此内部值不再使用。
返回字段的类型ID。
如果返回值为负数,则表示无法从数据库中获得该信息。
- value()¶
- Return type:
对象
返回value的值。
另请参阅
属性
valueᅟ的获取器。