이 페이지에서

QSqlField Class

QSqlField 클래스는 SQL 데이터베이스 테이블 및 뷰의 필드를 처리합니다. 더 보기...

헤더: #include <QSqlField>
CMake: find_package(Qt6 REQUIRED COMPONENTS Sql)
target_link_libraries(mytarget PRIVATE Qt6::Sql)
qmake: QT += sql

공개 유형

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(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는 데이터베이스 테이블이나 뷰 내의 단일 열에 대한 특성(예: 데이터 유형 및 열 이름)을 나타냅니다. 필드에는 데이터베이스 열의 값도 포함되어 있으며, 이 값을 확인하거나 변경할 수 있습니다.

필드 데이터 값은 QVariant로 저장됩니다. 호환되지 않는 데이터형을 사용하는 것은 허용되지 않습니다. 예를 들어:

    QSqlField field("age", QMetaType::fromType<int>());
    field.setValue(QPixmap());  // WRONG

그러나 필드는 가능한 경우 특정 데이터 유형을 필드 데이터 유형으로 형변환하려고 시도합니다:

    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 metaType(), length(), precision(), defaultValue(), typeID(), 그리고 requiredStatus(), isGenerated(), isReadOnly() 등이 있습니다. 필드의 데이터를 확인하여 isNull()인지 확인할 수 있으며, value()를 통해 해당 데이터를 가져올 수 있습니다. 편집 시에는 setValue()를 사용하여 데이터를 설정하거나, clear()를 사용하여 NULL로 설정할 수 있습니다.

QSqlRecord도 참조하십시오 .

멤버 유형 문서

enum QSqlField::RequiredStatus

해당 필드가 필수 항목인지 선택 항목인지 지정합니다.

상수값설명
QSqlField::Required1레코드를 삽입할 때 해당 필드를 반드시 지정해야 합니다.
QSqlField::Optional0레코드를 삽입할 때 해당 필드를 지정할 필요가 없습니다.
QSqlField::Unknown-1데이터베이스 드라이버가 해당 필드가 필수인지 선택 사항인지 판단할 수 없습니다.

requiredStatus도 참조하십시오 .

속성 설명서

[since 6.8] autoValue : bool

값이 데이터베이스에 의해 자동 생성되는 경우(예: 자동 증가 기본 키 값), 이 값은 ` true`입니다.

참고: 데이터베이스에 새 레코드를 작성할때 , ` autoValue ` 필드는 레코드가 데이터베이스에 제출된 후에야 데이터베이스에서 생성된 새 값을 저장합니다. 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에서 도입되었습니다.

액세스 함수:

int length() const
void setLength(int fieldLength)

[since 6.8] metaType : QMetaType

이 속성은 데이터베이스에 저장된 필드의 유형을 나타냅니다. 실제 값의 유형은 이와 다를 수 있다는 점에 유의하십시오. long int나 double로 저장하기에는 너무 큰 수치 값은 정밀도 손실을 방지하기 위해 대개 문자열로 저장됩니다.

이 열거형은 Qt 6.8에서 도입되었습니다.

액세스 함수:

QMetaType metaType() const
void setMetaType(QMetaType type)

QSqlDatabase::numericalPrecisionPolicy도 참조하십시오 .

name : QString

이 속성은 필드의 이름을 저장합니다. 여기에는 열 이름이나 사용자가 지정한 별칭이 포함될 수 있습니다.

액세스 함수:

QString name() const
void setName(const QString &name)

[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 라이브러리의 제한 사항으로 인해, forward-only 쿼리에 대해 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에서 도입되었습니다.

액세스 함수:

QVariant value() const
void setValue(const QVariant &value)

멤버 함수 설명서

[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 default] QSqlField::QSqlField(QSqlField &&other)

QSqlField 의 인스턴스를 move-construct로 생성합니다.

[noexcept] QSqlField::~QSqlField()

객체를 파기하고 할당된 리소스를 모두 해제합니다.

void QSqlField::clear()

필드의 값을 지우고 NULL로 설정합니다. 필드가 읽기 전용인 경우 아무 작업도 수행되지 않습니다.

QVariant QSqlField::defaultValue() const

defaultValue의 값을 설정합니다.

참고: 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

length 속성의 값을 반환합니다.

참고: length 속성에 대한게터 함수입니다.

setLength()도 참조하십시오 .

QMetaType QSqlField::metaType() const

metaType의 값을 반환합니다.

참고: metaType 속성에 대한게터 함수입니다.

setMetaType()도 참조하십시오 .

QString QSqlField::name() const

name의 값을 반환합니다.

참고: 속성 name에 대한게터 함수입니다.

setName()도 참조하십시오 .

int QSqlField::precision() const

precision 속성의 값을 반환합니다.

참고: precision 속성에 대한게터 함수입니다.

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 가 true인 경우 이 필드의 필수 상태를 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

value의 값을 반환합니다.

참고: 속성 value에 대한게터 함수입니다.

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`를 반환합니다.

© 2026 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.