qsqlquery 예제

연결이 설정되면 QSqlQuery를 사용하여 기본 데이터베이스가 지원하는 모든 SQL 문을 실행할 수 있습니다. 예를 들어 SELECT 문을 실행하는 방법은 다음과 같습니다: 많은 레코드를 삽입해야 하거나 값을 문자열로 변환하지 않으려면(그리고 올바르게 이스케이프) prepare()를 사용하여 자리 표시자를 포함하는 쿼리를 지정한 다음 wa 값을 바인딩할 수 있습니다. NT를 삽입할 수 있습니다. Qt는 사용 가능한 네이티브 지원을 사용하고 그렇지 않으면 시뮬레이션하여 모든 데이터베이스에 대한 자리 표시자에 대한 Oracle 스타일과 ODBC 스타일 구문을 모두 지원합니다. 다음은 Oracle 스타일 구문을 명명된 자리 표시자와 사용하는 예제입니다. QSqlQuery 생성자는 사용할 데이터베이스 연결을 지정하는 선택적 QSqlDatabase 개체를 허용합니다. 위의 예에서는 연결을 지정하지 않으므로 기본 연결이 사용됩니다. 다음은 ODBC 스타일 위치 자리 표시자를 사용하는 동일한 예입니다: Qt는 사용 가능한 데이터베이스에서 SQL 트랜잭션을 지원합니다. 트랜잭션을 시작 하려면 데이터베이스 연결을 나타내는 QSqlDatabase 개체에서 트랜잭션()을 호출 합니다. 트랜잭션을 완료하려면 commit() 또는 롤백()을 호출합니다. 예를 들어, 외래 키를 조회하고 트랜잭션 내에서 INSERT 문을 실행하는 방법은 다음과 같습니다.

Qt를 사용하면 마스터-detail 및 드릴다운과 같은 일반적인 데이터베이스 숙어를 프로그래밍하고 양식이나 GUI를 사용하여 데이터베이스 테이블을 쉽게 볼 수 있습니다. 이 장의 예제에서 보여 주는 것처럼 표를 참조하십시오. NULL 값을 바인딩하려면 관련 형식의 null QVariant을 바인딩된 QVariantList에 추가해야 합니다. 예를 들어 문자열을 사용하는 경우 QVariant(QVariant::String)을 사용해야 합니다. NULL 값을 바인딩하려면 null QVariant을 사용합니다. 예를 들어 문자열을 바인딩하는 경우 QVariant(QVariant::String)을 사용합니다. value() 함수는 필드의 값을 QVariant으로 반환합니다. 필드는 SELECT 문에 지정된 순서대로 0에서 번호가 매겨져 있습니다. QVariant 클래스는 int 및 QString을 포함하여 많은 C++ 및 Qt 유형을 보유할 수 있습니다. 데이터베이스에 저장할 수 있는 다양한 유형의 데이터가 해당 C++ 및 Qt 유형에 매핑되어 QVariants에 저장됩니다. 예를 들어 VARCHAR는 QString 및 DateTIME으로 QDateTime으로 표시됩니다. 아래에서는 4개의 서로 다른 바인딩 접근 방식각각과 저장 프로시저에 대한 바인딩 값의 한 예를 사용하여 동일한 예제를 제시합니다.

SQL 쿼리를 실행하려면 먼저 데이터베이스와의 연결을 설정해야 합니다.