QSqlField Class
QSqlField 클래스는 SQL 데이터베이스 테이블 및 뷰의 필드를 조작합니다. 더 보기...
Header: | #include <QSqlField> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Sql) target_link_libraries(mytarget PRIVATE Qt6::Sql) |
qmake: | QT += sql |
- 상속된 멤버를 포함한 모든 멤버 목록
- 사용되지 않는 멤버
- QSqlField는 데이터베이스 클래스와 암시적으로 공유되는 클래스의 일부입니다.
공용 유형
enum | RequiredStatus { Required, Optional, Unknown } |
속성
|
공공 기능
(since 6.0) | QSqlField(const QString &fieldName = QString(), QMetaType type = QMetaType(), const QString &table = QString()) |
QSqlField(const QSqlField &other) | |
~QSqlField() | |
void | clear() |
QVariant | defaultValue() const |
bool | isAutoValue() const |
bool | isGenerated() const |
bool | isNull() const |
bool | isReadOnly() const |
bool | isValid() const |
int | length() const |
QMetaType | metaType() const |
QString | name() const |
int | precision() const |
QSqlField::RequiredStatus | requiredStatus() const |
void | setAutoValue(bool autoVal) |
void | setDefaultValue(const QVariant &value) |
void | setGenerated(bool gen) |
void | setLength(int fieldLength) |
void | setMetaType(QMetaType type) |
void | setName(const QString &name) |
void | setPrecision(int precision) |
void | setReadOnly(bool readOnly) |
void | setRequired(bool required) |
void | setRequiredStatus(QSqlField::RequiredStatus required) |
void | setTableName(const QString &tableName) |
void | setValue(const QVariant &value) |
(since 6.6) void | swap(QSqlField &other) |
QString | tableName() const |
QVariant | value() const |
bool | operator!=(const QSqlField &other) const |
QSqlField & | operator=(const QSqlField &other) |
bool | operator==(const QSqlField &other) const |
상세 설명
QSqlField는 데이터베이스 테이블 또는 보기에서 데이터 유형 및 열 이름과 같은 단일 열의 특성을 나타냅니다. 필드에는 데이터베이스 열의 값도 포함되어 있으며, 이를 보거나 변경할 수 있습니다.
필드 데이터 값은 QVariants로 저장됩니다. 호환되지 않는 유형을 사용하는 것은 허용되지 않습니다. 예를 들어
그러나 필드는 가능한 경우 특정 데이터 유형을 필드 데이터 유형으로 형 변환하려고 시도합니다:
QSqlField field("age", QMetaType::fromType<int>()); field.setValue(QString("123")); // casts QString to int
QSqlField 개체는 애플리케이션 코드에서 명시적으로 생성되는 경우는 거의 없습니다. 일반적으로 이미 필드 목록이 포함된 QSqlRecord을 통해 간접적으로 액세스합니다. 예를 들어
QSqlQuery query; ... QSqlRecord record = query.record(); QSqlField field = record.field("country");
QSqlField 개체는 필드에 대한 메타데이터(예: name(), variant type(), length(), precision(), defaultValue(), typeID() 및 requiredStatus(), isGenerated() 및 isReadOnly())를 제공할 수 있습니다. 필드의 데이터는 isNull() 및 해당 value() 검색 여부를 확인할 수 있습니다. 편집할 때 setValue()로 데이터를 설정하거나 clear()로 NULL로 설정할 수 있습니다.
QSqlRecord 를참조하세요 .
회원 유형 문서
enum QSqlField::RequiredStatus
필드가 필수인지 선택 사항인지 지정합니다.
상수 | 값 | 설명 |
---|---|---|
QSqlField::Required | 1 | 레코드를 삽입할 때 필드를 지정해야 합니다. |
QSqlField::Optional | 0 | 레코드를 삽입할 때는 필드를 지정할 필요가 없습니다. |
QSqlField::Unknown | -1 | 데이터베이스 드라이버가 필드가 필수인지 선택 사항인지 확인할 수 없습니다. |
requiredStatus 을참조하세요 .
속성 문서
[since 6.8]
autoValue : bool
값이 데이터베이스에서 자동 생성되는 경우(예: 자동 증가 기본 키 값), 이 값은 true
입니다.
참고: ODBC 드라이버를 사용하는 경우 ODBC API의 제한으로 인해 isAutoValue()
필드는 SELECT
쿼리를 실행하여 얻은 QSqlRecord 의 결과인 QSqlField 에만 채워집니다. QSqlDatabase::record () 또는 QSqlDatabase::primaryIndex()에서 반환된 QSqlRecord 결과의 QSqlField 에는 false
입니다.
이 속성은 Qt 6.8에 도입되었습니다.
액세스 함수:
bool | isAutoValue() const |
void | setAutoValue(bool autoVal) |
[since 6.8]
defaultValue : QVariant
이 속성은 이 필드의 기본값을 보유합니다. 일부 데이터베이스 드라이버만 이 속성을 지원합니다. 현재 지원되는 드라이버는 SQLite, PostgreSQL, Oracle 및 MySQL/MariaDB입니다.
이 속성은 Qt 6.8에 도입되었습니다.
액세스 함수:
QVariant | defaultValue() const |
void | setDefaultValue(const QVariant &value) |
[since 6.8]
generated : bool
이 프로퍼티는 생성된 상태를 보유합니다. generated 가 false
인 경우 이 필드에 대한 SQL이 생성되지 않으며, 그렇지 않으면 QSqlQueryModel 및 QSqlTableModel 와 같은 Qt 클래스가 이 필드에 대한 SQL을 생성합니다.
이 프로퍼티는 Qt 6.8에 도입되었습니다.
액세스 함수:
bool | isGenerated() const |
void | setGenerated(bool gen) |
[since 6.8]
length : int
이 속성은 필드의 길이를 보유합니다.
값이 음수이면 데이터베이스에서 정보를 사용할 수 없음을 의미합니다. 문자열의 경우 문자열이 포함할 수 있는 최대 문자 수이며, 다른 유형에서는 의미가 달라집니다.
이 속성은 Qt 6.8에 도입되었습니다.
액세스 함수:
[since 6.8]
metaType : QMetaType
이 속성은 데이터베이스에 저장된 필드 유형을 보유합니다. 실제 값은 다른 유형일 수 있으며, 너무 커서 긴 정수나 이중으로 저장할 수 없는 숫자 값은 정밀도 손실을 방지하기 위해 일반적으로 문자열로 저장됩니다.
이 속성은 Qt 6.8에 도입되었습니다.
액세스 함수:
QMetaType | metaType() const |
void | setMetaType(QMetaType type) |
QSqlDatabase::numericalPrecisionPolicy 를참조하십시오 .
name : QString
이 속성에는 필드의 이름이 저장됩니다. 열 이름 또는 사용자가 지정한 별칭이 될 수 있습니다.
액세스 함수:
[since 6.8]
precision : int
이 속성은 필드의 정밀도를 보유하며, 숫자 유형에만 의미가 있습니다.
반환된 값이 음수이면 데이터베이스에서 정보를 사용할 수 없음을 의미합니다.
이 프로퍼티는 Qt 6.8에 도입되었습니다.
액세스 함수:
int | precision() const |
void | setPrecision(int precision) |
[since 6.8]
readOnly : bool
이 속성이 true
인 경우 QSqlField 은 수정할 수 없습니다. 읽기 전용 필드는 setValue()로 값을 설정할 수 없으며 clear()로 NULL로 지울 수 없습니다.
이 프로퍼티는 Qt 6.8에 도입되었습니다.
액세스 함수:
bool | isReadOnly() const |
void | setReadOnly(bool readOnly) |
[since 6.8]
requiredStatus : RequiredStatus
이 속성은 RequiredStatus 필드를 보유합니다. 필수 필드에 값이 없는 경우 INSERT
은 실패합니다.
이 프로퍼티는 Qt 6.8에 도입되었습니다.
액세스 함수:
QSqlField::RequiredStatus | requiredStatus() const |
void | setRequiredStatus(QSqlField::RequiredStatus required) |
RequiredStatus 를참조하세요 .
[since 6.8]
tableName : QString
이 속성은 필드의 tableName을 보유합니다.
참고: QPSQL 드라이버를 사용하는 경우 libpq 라이브러리의 제한으로 인해 정방향 전용 쿼리의 QSqlQuery::record()로 얻은 QSqlRecord 결과인 QSqlField 에는 tableName()
필드가 채워지지 않습니다.
이 속성은 Qt 6.8에 도입되었습니다.
액세스 함수:
QString | tableName() const |
void | setTableName(const QString &tableName) |
[since 6.8]
value : QVariant
이 속성은 value QVariant
value 을 읽기 전용 QSqlField 으로 설정하는 것은 불가능합니다. value 의 데이터 유형이 필드의 현재 데이터 유형과 다른 경우 적절한 유형으로 캐스팅을 시도합니다. 이렇게 하면 QString 을 정수 데이터 유형으로 할당하는 경우 필드의 데이터 유형이 유지됩니다.
값을 NULL로 설정하려면 clear()를 사용합니다.
이 속성은 Qt 6.8에 도입되었습니다.
액세스 함수:
멤버 함수 문서
[explicit, since 6.0]
QSqlField::QSqlField(const QString &fieldName = QString(), QMetaType type = QMetaType(), const QString &table = QString())
이 함수는 오버로드된 함수입니다.
table 에 type 타입의 fieldName 라는 빈 필드를 생성합니다.
이 함수는 Qt 6.0에 도입되었습니다.
QSqlField::QSqlField(const QSqlField &other)
other 의 복사본을 생성합니다.
[noexcept]
QSqlField::~QSqlField()
개체를 파괴하고 할당된 모든 리소스를 해제합니다.
void QSqlField::clear()
필드 값을 지우고 NULL로 설정합니다. 필드가 읽기 전용인 경우 아무 일도 일어나지 않습니다.
QVariant QSqlField::defaultValue() const
defaultValue의 값을 설정합니다.
참고: 기본값 속성에 대한 게터 함수입니다.
setDefaultValue()도 참조하세요 .
bool QSqlField::isAutoValue() const
autoValue 의 값을 반환합니다.
참고: 속성에 대한 게터 함수 autoValue.
bool QSqlField::isGenerated() const
generated 의 값을 반환합니다.
참고: 속성에 대한 게터 함수 generated.
bool QSqlField::isNull() const
필드 값이 NULL이면 true
을 반환하고, 그렇지 않으면 false를 반환합니다.
value 를참조하세요 .
bool QSqlField::isReadOnly() const
readOnly 의 값을 반환합니다.
참고: 속성에 대한 게터 함수 readOnly.
bool QSqlField::isValid() const
필드의 이형 유형이 유효하면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
int QSqlField::length() const
길이 값을 반환합니다.
참고: 속성 길이에 대한 게터 함수입니다.
setLength()도 참조하세요 .
QMetaType QSqlField::metaType() const
메타타입의 값을 반환합니다.
참고: 속성 메타타입에 대한 게터 함수입니다.
setMetaType()도 참조하세요 .
QString QSqlField::name() const
이름 값을 반환합니다.
참고: 속성 이름에 대한 게터 함수입니다.
setName()도 참조하세요 .
int QSqlField::precision() const
정밀도 값을 반환합니다.
참고: 프로퍼티 정밀도에 대한 게터 함수입니다.
setPrecision()도 참조하세요 .
QSqlField::RequiredStatus QSqlField::requiredStatus() const
requiredStatus의 값을 반환합니다.
참고: requiredStatus 속성에 대한 게터 함수입니다.
setRequiredStatus()도 참조하세요 .
void QSqlField::setAutoValue(bool autoVal)
autoValue 을 autoVal 으로 설정합니다.
참고: 속성에 대한 세터 함수 autoValue.
isAutoValue()도 참조하세요 .
void QSqlField::setDefaultValue(const QVariant &value)
defaultValue 을 value 으로 설정합니다.
참고: 속성에 대한 세터 함수 defaultValue.
defaultValue()도 참조하세요 .
void QSqlField::setGenerated(bool gen)
generated 을 gen 으로 설정합니다.
참고: 속성에 대한 세터 함수 generated.
isGenerated()도 참조하세요 .
void QSqlField::setLength(int fieldLength)
length 을 fieldLength 으로 설정합니다.
참고: 속성에 대한 세터 함수 length.
length()도 참조하세요 .
void QSqlField::setMetaType(QMetaType type)
metaType 을 type 으로 설정합니다.
참고: 속성에 대한 세터 함수 metaType.
metaType()도 참조하세요 .
void QSqlField::setName(const QString &name)
name 을 name 으로 설정합니다.
참고: 속성에 대한 세터 함수 name.
name()도 참조하세요 .
void QSqlField::setPrecision(int precision)
precision 을 precision 으로 설정합니다.
참고: 속성에 대한 세터 함수 precision.
precision()도 참조하세요 .
void QSqlField::setReadOnly(bool readOnly)
readOnly 을 readOnly 으로 설정합니다.
참고: 속성에 대한 세터 함수 readOnly.
isReadOnly()도 참조하세요 .
void QSqlField::setRequired(bool required)
required 이 참이면 이 필드의 필수 상태를 Required 로 설정하고, 그렇지 않으면 Optional 로 설정합니다.
requiredStatus도 참조하세요 .
void QSqlField::setRequiredStatus(QSqlField::RequiredStatus required)
requiredStatus 을 required 으로 설정합니다.
참고: 속성에 대한 세터 함수 requiredStatus.
requiredStatus()도 참조하세요 .
void QSqlField::setTableName(const QString &tableName)
tableName 을 tableName 으로 설정합니다.
참고: 속성에 대한 세터 함수 tableName.
tableName()도 참조하세요 .
void QSqlField::setValue(const QVariant &value)
value 을 value 으로 설정합니다.
참고: 속성에 대한 세터 함수 value.
value()도 참조하세요 .
[noexcept, since 6.6]
void QSqlField::swap(QSqlField &other)
이 필드를 other 로 바꿉니다. 이 작업은 매우 빠르며 실패하지 않습니다.
이 함수는 Qt 6.6에 도입되었습니다.
QString QSqlField::tableName() const
tableName을 반환합니다.
참고: tableName 속성에 대한 게터 함수입니다.
setTableName()도 참조하세요 .
QVariant QSqlField::value() const
값의 값을 반환합니다.
참고: 속성 값에 대한 게터 함수입니다.
setValue()도 참조하세요 .
bool QSqlField::operator!=(const QSqlField &other) const
필드가 other 과 같지 않으면 true
을 반환하고, 그렇지 않으면 false 를 반환합니다.
QSqlField &QSqlField::operator=(const QSqlField &other)
필드를 other 으로 설정합니다.
bool QSqlField::operator==(const QSqlField &other) const
필드가 other 과 같으면 true
을 반환하고, 그렇지 않으면 false 를 반환합니다.
© 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.