class QSqlField

The QSqlField class manipulates the fields in SQL database tables and views. More

Synopsis

Properties

Methods

Note

This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE

Detailed Description

Warning

This section contains snippets that were automatically translated from C++ to Python and may contain errors.

QSqlField represents the characteristics of a single column in a database table or view, such as the data type and column name. A field also contains the value of the database column, which can be viewed or changed.

Field data values are stored as QVariants. Using an incompatible type is not permitted. For example:

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

However, the field will attempt to cast certain data types to the field data type where possible:

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

QSqlField objects are rarely created explicitly in application code. They are usually accessed indirectly through QSqlRecord s that already contain a list of fields. For example:

query = QSqlQuery()            ...

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

A QSqlField object can provide some meta-data about the field, for example, its name() , variant type(), length() , precision() , defaultValue() , typeID(), and its requiredStatus() , isGenerated() and isReadOnly() . The field’s data can be checked to see if it isNull() , and its value() retrieved. When editing the data can be set with setValue() or set to NULL with clear() .

See also

QSqlRecord

class RequiredStatus

Specifies whether the field is required or optional.

Constant

Description

QSqlField.Required

The field must be specified when inserting records.

QSqlField.Optional

The fields doesn’t have to be specified when inserting records.

QSqlField.Unknown

The database driver couldn’t determine whether the field is required or optional.

See also

requiredStatus

Note

Properties can be used directly when from __feature__ import true_property is used or via accessor functions otherwise.

property autoValueᅟ: bool

If the value is auto-generated by the database, for example auto-increment primary key values, this value is true.

Note

When using the ODBC driver, due to limitations in the ODBC API, the isAutoValue() field is only populated in a QSqlField resulting from a QSqlRecord obtained by executing a SELECT query. It is false in a QSqlField resulting from a QSqlRecord returned from record() or primaryIndex() .

Access functions:
property defaultValueᅟ: object

This property holds the default value for this field. Only some database drivers supports this property. Currently those are SQLite, PostgreSQL, Oracle and MySQL/MariaDB.

Access functions:
property generatedᅟ: bool

This property holds the generated state. If generated is false, no SQL will be generated for this field; otherwise, Qt classes such as QSqlQueryModel and QSqlTableModel will generate SQL for this field.

Access functions:
property lengthᅟ: int

This property holds the field’s length.

If the value is negative, it means that the information is not available from the database. For strings this is the maximum number of characters the string can hold; the meaning varies for other types.

Access functions:
property metaTypeᅟ: QMetaType

This property holds the field’s type as stored in the database. Note that the actual value might have a different type, Numerical values that are too large to store in a long int or double are usually stored as strings to prevent precision loss.

Access functions:
property nameᅟ: str

This property holds the name of the field. This can be the column name or a user given alias.

Access functions:
property precisionᅟ: int

This property holds the field’s precision; this is only meaningful for numeric types.

If the returned value is negative, it means that the information is not available from the database.

Access functions:
property readOnlyᅟ: bool

When this property is true then this QSqlField cannot be modified. A read-only field cannot have its value set with setValue() and cannot be cleared to NULL with clear() .

Access functions:
property requiredStatusᅟ: QSqlField.RequiredStatus

This property holds the RequiredStatus of the field. An INSERT will fail if a required field does not have a value.

See also

RequiredStatus

Access functions:
property tableNameᅟ: str

This property holds the tableName of the field.

Note

When using the QPSQL driver, due to limitations in the libpq library, the tableName() field is not populated in a QSqlField resulting from a QSqlRecord obtained by record() of a forward-only query.

Access functions:
property valueᅟ: object

This property holds the value as a QVariant

Setting a value to a read-only QSqlField is a no-op. If the data type of value differs from the field’s current data type, an attempt is made to cast it to the proper type. This preserves the data type of the field in the case of assignment, e.g. a QString to an integer data type.

To set the value to NULL, use clear() .

Access functions:
__init__(other)
Parameters:

otherQSqlField

Constructs a copy of other.

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

  • typeQMetaType

  • tableName – str

This is an overloaded function.

Constructs an empty field called fieldName of type type in table.

clear()

Clears the value of the field and sets it to NULL. If the field is read-only, nothing happens.

defaultValue()
Return type:

object

Sets the value of defaultValue.

Getter of property defaultValueᅟ .

isAutoValue()
Return type:

bool

Returns the value of autoValue .

Getter of property autoValueᅟ .

isGenerated()
Return type:

bool

Returns the value of generated .

Getter of property generatedᅟ .

isNull()
Return type:

bool

Returns true if the field’s value is NULL; otherwise returns false.

See also

value

isReadOnly()
Return type:

bool

Returns the value of readOnly .

Getter of property readOnlyᅟ .

isValid()
Return type:

bool

Returns true if the field’s variant type is valid; otherwise returns false.

length()
Return type:

int

Returns the value of length.

See also

setLength()

Getter of property lengthᅟ .

metaType()
Return type:

QMetaType

Returns the value of metaType.

See also

setMetaType()

Getter of property metaTypeᅟ .

name()
Return type:

str

Returns the value of name.

See also

setName()

Getter of property nameᅟ .

__ne__(other)
Parameters:

otherQSqlField

Return type:

bool

Returns true if the field is unequal to other; otherwise returns false.

__eq__(other)
Parameters:

otherQSqlField

Return type:

bool

Returns true if the field is equal to other; otherwise returns false.

precision()
Return type:

int

Returns the value of precision.

See also

setPrecision()

Getter of property precisionᅟ .

requiredStatus()
Return type:

RequiredStatus

Returns the value of requiredStatus.

Getter of property requiredStatusᅟ .

setAutoValue(autoVal)
Parameters:

autoVal – bool

Sets autoValue to autoVal.

See also

isAutoValue()

Setter of property autoValueᅟ .

setDefaultValue(value)
Parameters:

value – object

Sets defaultValue to value.

See also

defaultValue()

Setter of property defaultValueᅟ .

setGenerated(gen)
Parameters:

gen – bool

Sets generated to gen.

See also

isGenerated()

Setter of property generatedᅟ .

setLength(fieldLength)
Parameters:

fieldLength – int

Sets length to fieldLength.

See also

length()

Setter of property lengthᅟ .

setMetaType(type)
Parameters:

typeQMetaType

Sets metaType to type.

See also

metaType()

Setter of property metaTypeᅟ .

setName(name)
Parameters:

name – str

Sets name to name.

See also

name()

Setter of property nameᅟ .

setPrecision(precision)
Parameters:

precision – int

Sets precision to precision.

See also

precision()

Setter of property precisionᅟ .

setReadOnly(readOnly)
Parameters:

readOnly – bool

Sets readOnly to readOnly.

See also

isReadOnly()

Setter of property readOnlyᅟ .

setRequired(required)
Parameters:

required – bool

Sets the required status of this field to Required if required is true; otherwise sets it to Optional .

See also

requiredStatus

setRequiredStatus(status)
Parameters:

statusRequiredStatus

Sets requiredStatus to required.

See also

requiredStatus()

Setter of property requiredStatusᅟ .

setSqlType(type)
Parameters:

type – int

Note

This function is deprecated.

This internal value is no longer used.

setTableName(tableName)
Parameters:

tableName – str

Sets tableName to tableName.

See also

tableName()

Setter of property tableNameᅟ .

setValue(value)
Parameters:

value – object

Sets value to value.

See also

value()

Setter of property valueᅟ .

swap(other)
Parameters:

otherQSqlField

Swaps this field with other. This function is very fast and never fails.

tableName()
Return type:

str

Returns the tableName.

See also

setTableName()

Getter of property tableNameᅟ .

typeID()
Return type:

int

Note

This function is deprecated.

This internal value is no longer used.

Returns the type ID for the field.

If the returned value is negative, it means that the information is not available from the database.

value()
Return type:

object

Returns the value of value.

See also

setValue()

Getter of property valueᅟ .