qt sql 예제

이 예제에서는 이 장의 다른 모든 예제와 함께 프로젝트 이름 `book`을 가지며 book.sql 스크립트에서 만든 데이터베이스를 사용합니다. 이 장을 통해 작업하는 동안 우리는 단계적으로 `책`응용 프로그램을 구축 할 것입니다. 앞서 표시된 qt/도구/디자이너/예제/book/book1/main.cpp 파일을 작성하거나 복사합니다. 이 첫 번째 예제의 프로젝트 파일은 qt/도구/디자이너/예제/book1/book1/book.pro입니다. 파일 | 을 클릭하여 새 프로젝트를 시작합니다. 새 를 클릭 한 다음 `C ++ 프로젝트` 아이콘을 클릭 하 고 프로젝트 설정 대화 상자를 호출 합니다. 타원 단추를 클릭하여 대화 상자로 저장을 호출합니다. 프로젝트 디렉터리로 이동합니다(필요한 경우 생성). 프로젝트 디렉터리에 있는지 확인한 다음 `book.pro`의 프로젝트 이름을 입력합니다. 저장 단추를 클릭하여 프로젝트 설정 대화 상자로 돌아가고 확인을 클릭합니다. 이제 프로젝트 | 클릭 데이터베이스 연결. 데이터베이스에 적합한 연결 정보를 입력한 다음 연결을 누릅니다. 이제 연결 이름이 왼쪽 목록 상자에 나타납니다.

이런 일이 발생하지 않으면 데이터베이스 시스템 관리자에게 도움을 요청해야 합니다. 대화 상자를 닫습니다. 트랜잭션은 복잡한 작업이 원자성(예: 외래 키를 찾고 레코드 만들기)인지 확인하거나 중간에 복잡한 변경을 취소하는 방법을 제공하는 데 사용할 수 있습니다. `book` 테이블은 예제의 목적을 위해 단순화됩니다. 책을 한 저자(저자)와만 관련시킬 수 있으며 ISBN 필드가 없습니다. `시퀀스` 테이블은 예제 테이블에 대한 고유한 인덱스 값을 생성하는 데 사용됩니다. SQL 데이터베이스는 시퀀스 만들기(예: CREATE SEQUENCE 명령 사용)를 만드는 자체 방법을 제공하는 경우가 많으며, 이는 보다 최적의 솔루션일 가능성이 높습니다. 이식성을 위해 예제는 대부분의 SQL 데이터베이스에서 작동하는 `시퀀스` 테이블을 사용합니다. QSqlQuery는 SELECT뿐만 아니라 임의의 SQL 문을 실행할 수 있습니다. 다음 예제에서는 INSERT를 사용 하 여 테이블에 레코드를 삽입: Qt 디자이너를 사용 하 여 main.cpp 파일을 만드는 경우이 파일에 는 createConnections()를 포함 하지 않습니다. 데이터베이스 연결에 대한 사용자 이름과 암호가 필요하기 때문에 이 함수를 포함하지 않으며 간단한 예제 기능과 다르게 처리하는 것을 선호할 수 있습니다.

따라서 Qt Designer에서 올바르게 미리 보기하는 응용 프로그램은 사용자 고유의 데이터베이스 연결 기능을 구현하지 않는 한 실행되지 않습니다. 만드는 응용 프로그램은 SQL 데이터베이스에 대한 자체 연결을 만들어야 합니다. 우리는 당신이 당신의 자신의 코드에 대한 기초로 사용할 수있는 예제 함수, createConnections()를 제공합니다. 이 장의 예제는 모두 qt/도구/디자이너/예제/book/book.sql 파일에 정의된 테이블, 보기 및 레코드를 사용합니다. 이 파일은 PostgreSQL 6 및 PostgreSQL 7로 테스트되었습니다. 이 파일의 SQL을 수정하여 사용자 고유의 시스템에서 예제 데이터베이스를 다시 만들어야 할 수 있습니다. addDatabase())를 사용하려는 드라이버의 이름을 전달합니다. 그런 다음 집합을 호출하여 연결 정보를 설정합니다… 함수. 마지막으로 연결을 엽니다.

우리가 성공하면 우리는 TRUE를 반환, 그렇지 않으면 우리는 몇 가지 오류 정보를 출력하고 FALSE를 반환합니다. qt / 도구 / 디자이너 / 예에서 / 책 / book1 / main.cpp QDataTable 데이터베이스 테이블 및 보기의 검색을 제공하기 위해 어떤 양식에 배치 할 수 있습니다. QDataTable은 또한 셀 자체 내에서 와 같은 레코드를 업데이트하거나 삭제하는 데 사용할 수 있습니다. QDataTable을 통해 레코드를 삽입하려면 일반적으로 primeInsert() 신호에 연결해야 예를 들어 기본 키를 생성하거나 기본 값을 제공할 수 있습니다. 양식 보기(여러 테이블 및 뷰의 데이터를 결합)를 사용하여 레코드를 표시하려면 여러 QDataBrowsers 및 QDataView를 사용할 수 있습니다. QSqlQuery 개체는 작성자 테이블에 대한 고유한 `시퀀스` 번호를 증분하고 검색하는 데 사용됩니다.

Posted in Bez kategorii