QSqlField Class Reference

[QtSql module]

该QSqlField类操纵在SQL数据库中的表和视图中的字段。More…

Types

  • enum RequiredStatus { Unknown, Optional, Required }

Methods

  • __init__ (self, QString fieldName = QString(), Type type = QVariant.Invalid)
  • __init__ (self, QSqlField other)
  • clear (self)
  • QVariant defaultValue (self)
  • bool isAutoValue (self)
  • bool isGenerated (self)
  • bool isNull (self)
  • bool isReadOnly (self)
  • bool isValid (self)
  • int length (self)
  • QString name (self)
  • int precision (self)
  • RequiredStatus requiredStatus (self)
  • setAutoValue (self, bool autoVal)
  • setDefaultValue (self, QVariant value)
  • setGenerated (self, bool gen)
  • setLength (self, int fieldLength)
  • setName (self, QString name)
  • setPrecision (self, int precision)
  • setReadOnly (self, bool readOnly)
  • setRequired (self, bool required)
  • setRequiredStatus (self, RequiredStatus status)
  • setSqlType (self, int type)
  • setType (self, Type type)
  • setValue (self, QVariant value)
  • Type type (self)
  • int typeID (self)
  • QVariant value (self)

Special Methods

  • bool __eq__ (self, QSqlField other)
  • bool __ne__ (self, QSqlField other)

Detailed Description

该QSqlField类操纵在SQL数据库中的表和视图中的字段。

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

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

  1. QSqlField field("age", [QVariant]($docs-qvariant.html).Int);
  2. field.setValue([QPixmap](qpixmap.html)()); // WRONG

然而,该领域将尝试施放某些数据类型的字段的数据类型的地方可能:

  1. QSqlField field("age", [QVariant]($docs-qvariant.html).Int);
  2. field.setValue([QString]($docs-qstring.html)("123")); // casts QString to int

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

  1. [QSqlQuery](qsqlquery.html) query;
  2. ...
  3. [QSqlRecord]($docs-qsqlrecord.html) record = query.record();
  4. QSqlField field = record.field("country");

一个QSqlField对象可以提供一些元数据有关的领域,例如,其name( ) ,变异type( )length( )precision( )defaultValue() , typeid的() ,并且它的requiredStatus( )isGenerated()和isReadOnly( ) 。该字段的数据可以被检查,看它是否isNull() ,和其value( )检索。当编辑数据可以与设置setValue()或设置为NULL与clear( ) 。


Type Documentation

  1. QSqlField.RequiredStatus

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

Constant Value Description
QSqlField.Required 1 插入记录时,该字段必须被指定。
QSqlField.Optional 0 该字段没有插入记录时指定。
QSqlField.Unknown -1 数据库驱动程序无法确定该字段是否是必需的或可选的。

See also requiredStatus( ) 。


Method Documentation

  1. QSqlField.__init__ (self, QString fieldName = QString(), Type type = QVariant.Invalid)

构造一个空字段称为fieldName变异型type

See also setRequiredStatus( )setLength( )setPrecision( )setDefaultValue( )setGenerated()和setReadOnly( ) 。

  1. QSqlField.__init__ (self, QSqlField other)

构造的副本other

  1. QSqlField.clear (self)

清除字段的值,并将其设置为NULL 。如果该字段是只读的,什么也没有发生。

See also setValue( )isReadOnly()和requiredStatus( ) 。

  1. QVariant QSqlField.defaultValue (self)

返回字段的默认值(可能为空) 。

See also setDefaultValue( )type( )requiredStatus( )length( )precision()和isGenerated( ) 。

  1. bool QSqlField.isAutoValue (self)

返回True如果该值是由数据库自动生成,例如自动递增的主键值。

See also setAutoValue( ) 。

  1. bool QSqlField.isGenerated (self)

返回True如果生成的字段,否则返回False 。

See also setGenerated( )type( )requiredStatus( )length( )precision()和defaultValue( ) 。

  1. bool QSqlField.isNull (self)

返回True如果该字段的值为NULL ,否则返回False 。

See also value( ) 。

  1. bool QSqlField.isReadOnly (self)

返回True,如果该字段的值是只读的,否则返回False 。

See also setReadOnly( )type( )requiredStatus( )length( )precision( )defaultValue()和isGenerated( ) 。

  1. bool QSqlField.isValid (self)

返回True如果该字段的变量类型是有效的,否则返回False 。

  1. int QSqlField.length (self)

返回字段的长度。

如果返回的值是负的,这意味着该信息不可用,从数据库中。

See also setLength( )type( )requiredStatus( )precision( )defaultValue()和isGenerated( ) 。

  1. QString QSqlField.name (self)

返回字段的名称。

See also setName( ) 。

  1. int QSqlField.precision (self)

返回字段的精度,这是唯一有意义的数值类型。

如果返回的值是负的,这意味着该信息不可用,从数据库中。

See also setPrecision( )type( )requiredStatus( )length( )defaultValue()和isGenerated( ) 。

  1. RequiredStatus QSqlField.requiredStatus (self)

[

返回True如果这是一个必需的字段,否则返回False 。一个INSERT如果一个必填字段没有值将会失败。

]($docs-qsqlfield.html#RequiredStatus-enum)

See also setRequiredStatus( )type( )length( )precision( )defaultValue()和isGenerated( ) 。

  1. QSqlField.setAutoValue (self, bool autoVal)

标志着字段自动生成的值,如果autoVal是真实的。

See also isAutoValue( ) 。

  1. QSqlField.setDefaultValue (self, QVariant value)

设置用于此字段的默认值value

See also defaultValue( )value( )setType( )setRequiredStatus( )setLength( )setPrecision( )setGenerated()和setReadOnly( ) 。

  1. QSqlField.setGenerated (self, bool gen)

设置生成的状态。如果gen是假的,没有SQL将这个字段来产生,否则, Qt类如QSqlQueryModelQSqlTableModel将生成的SQL这一领域。

See also isGenerated( )setType( )setRequiredStatus( )setLength( )setPrecision( )setDefaultValue()和setReadOnly( ) 。

  1. QSqlField.setLength (self, int fieldLength)

设置字段的长度fieldLength。对于字符串是字符的字符串可以容纳的最大人数;对于其它类型的含义各不相同。

See also length( )setType( )setRequiredStatus( )setPrecision( )setDefaultValue( )setGenerated()和setReadOnly( ) 。

  1. QSqlField.setName (self, QString name)

设置字段的名称name

See also name( ) 。

  1. QSqlField.setPrecision (self, int precision)

设置字段的precision。这只会影响数字字段。

See also precision( )setType( )setRequiredStatus( )setLength( )setDefaultValue( )setGenerated()和setReadOnly( ) 。

  1. QSqlField.setReadOnly (self, bool readOnly)

设置只读标志字段的值来readOnly。只读字段不能有其值设置与setValue( ),并不能清除为NULL与clear( ) 。

See also isReadOnly( ) 。

  1. QSqlField.setRequired (self, bool required)

设置这个字段所需要的状态Required如果required为True,否则设置为Optional

See also setRequiredStatus()和requiredStatus( ) 。

  1. QSqlField.setRequiredStatus (self, RequiredStatus status)

设置这个字段所需要的状态required

See also requiredStatus( )setType( )setLength( )setPrecision( )setDefaultValue( )setGenerated()和setReadOnly( ) 。

  1. QSqlField.setSqlType (self, int type)
  1. QSqlField.setType (self, Type type)

集的字段的变量类型type

See also type( )setRequiredStatus( )setLength( )setPrecision( )setDefaultValue( )setGenerated()和setReadOnly( ) 。

  1. QSqlField.setValue (self, QVariant value)

设置该字段的值,以value。如果该字段是只读的(isReadOnly( )返回True ) ,没有任何反应。

如果数据类型value不同于字段的当前数据类型,试图将其转换为适当的类型。这将保留字段的数据类型的赋值,如案件一QString为整数数据类型。

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

See also value( )isReadOnly()和defaultValue( ) 。

  1. Type QSqlField.type (self)

[

返回字段的类型与存储在数据库中。请注意,实际值可能有不同的类型,即是太大,无法存储在一个长整型或双通常被存储为字符串,以防止丢失精度的数值。

]($docs-index.htm#Type-enum)

See also setType( ) 。

  1. int QSqlField.typeID (self)
  1. QVariant QSqlField.value (self)

返回该字段的值作为QVariant

使用isNull( )来检查该字段的值是NULL 。

See also setValue( ) 。

  1. bool QSqlField.__eq__ (self, QSqlField other)
  1. bool QSqlField.__ne__ (self, QSqlField other)