The QSqlDatabase class 는 연 결 된 데이터 베 이 스 를 조작 합 니 다
Header: #include
qmaker: Qt += sql
함수 에 대한 상세 한 설명 QSqlDatabase 류 는 연 결 된 데이터 베 이 스 를 조작 하 는 QSqlDatabase 류 는 연결 을 통 해 데이터 베 이 스 를 방문 하 는 인 터 페 이 스 를 제공 합 니 다. QSqlDatabase 의 이름 은 연결 을 대표 합 니 다.이 연결 은 데이터베이스 구동 을 지원 하 는 데이터베이스 에 접근 하 는 인 터 페 이 스 를 제공 합 니 다. 이 데이터베이스 구동 은 QSqlDriver 클래스 에서 내 보 낼 수 있 거나 QSqlDriver 클래스 를 기반 으로 하위 클래스 를 만 들 수 있 습 니 다. 이 점 을 보십시오. static addDatabase () 기능 을 사용 하여 연결 을 만 들 수 있 습 니 다. 구동 또는 구동 형식 을 지정 하여 사용 할 수 있 습 니 다.(데이터베이스 형식 에 따라 다 름) 과 연 결 된 이름 입 니 다. 하나의 연결 은 연 결 된 데이터베이스 이름 이 아니 라 이름 으로 판단 합 니 다. 하나의 데이터베이스 에 많은 연결 을 할 수 있 습 니 다. QSqlDatabase 도 기본 연결 (이름 없 는 연결) 개념 을 지원 합 니 다. 기본 연결 을 만 들 기 위해 addDatabase () 를 사용 할 때함수 일 때 연결 의 이름 원칙 을 생략 하지 마 십시오. 연결 의 이름 을 지정 하지 않 고 정적 구성원 함 수 를 사용 하면 기본 연결 이 지 정 됩 니 다. 다음 코드 세그먼트 에 서 는 PostfreSQL 데이터베이스 에 있 는 기본 연결 을 만 들 고 여 는 방법 을 보 여 줍 니 다.
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
db.setHostName("acidalia");
db.setDatabaseName("customdb");
db.setUserName("mojito");
db.setPassword("J0a1m8");
bool ok = db.open();
QSqlDatabase 프로젝트 가 생 성 되면 setDatabaseName (), setUserName (), setPassword (), setHostName (), setPort (), setConnectOptions () 를 통 해 연 결 된 데이터 베 이 스 를 설정 한 다음 open () 을 사용 할 수 있 습 니 다.함수 로 데이터베이스 에 대한 물리 적 연결 을 활성화 합 니 다. 연결 을 활성화 하지 않 으 면 사용 할 수 없습니다. 위 에서 정의 한 연결 은 기본 연결 입 니 다. addDatabase () 에 연결 할 이름 이 없 기 때문에 데이터베이스 () 함 수 를 사용 하여 연결 이름 대신 기본 연결 을 얻 을 수 있 습 니 다.
QSqlDatabase db = QSqlDatabase::database();
QSqlDatabase 는 값 이 있 는 클래스 로 데이터 에 대한 모든 변 화 는 이 데이터 베 이 스 를 연결 하 는 다른 값 에 영향 을 줄 수 있 습 니 다. clone Database () 를 사용 하여 존재 하 는 데이터 베 이 스 를 기반 으로 독립 적 인 연결 을 만 듭 니 다.
경고: 특히 QSqlDatabase () 의 사본 을 클래스 의 일부분 으로 보관 하지 않 는 것 을 권장 합 니 다. 이 예제 가 닫 힐 때 소각 되 지 않도록 차단 합 니 다. 존재 하 는 데이터 베 이 스 를 방문 하려 면 database () 를 사용 해 야 합 니 다.QSqlDatabase 의 구성원 변 수 를 만 들 려 면 QCoreApplication 이 없 애기 전에 없 애 야 합 니 다. 그렇지 않 으 면 예상 치 못 한 결 과 를 얻 을 수 있 습 니 다. 여러 데이터베이스 연결 을 만 들 려 면 모든 연결 이름 이 유일 하 게 지정 하 십시오. addDatabase () 를 사용 할 때 database () 를 사용 하 십시오.연 결 된 이름과 이 연결 을 가 져 옵 니 다. removeDatadbase () 와 연 결 된 이름 을 사용 하여 이 연결 을 제거 합 니 다. QSqlDatabase 에서 이상 을 출력 합 니 다. 다른 QSqlDatabase 대상 을 통 해 연결 을 제거 하려 면 contains () 를 사용 하여 연 결 된 목록 에 연 결 된 연결 이름 이 있 는 지 확인 하 십시오.
실 용적 인 방법 들 tables() tables 목록 되 돌리 기 primaryindex() 표 의 주요 열 을 되 돌려 줍 니 다. record() 표 의 도 메 인 변화 정 보 를 되 돌려 줍 니 다. transaction() 트 랜 잭 션 시작 commit() 트 랜 잭 션 저장 및 완료 rollback() 트 랜 잭 션 취소 hasFeature() 이 트 랜 잭 션 을 지원 하 는 지 확인 하 십시오. lastError() 마지막 오류 메 시 지 를 되 돌려 줍 니 다. drivers() 사용 가능 한 SQL 드라이버 되 돌리 기 isDriverAvailable() 이 드라이브 가 사용 가능 한 지 확인 하 십시오. registerAqlDriver() 클 라 이언 트 드라이브 등록
주의: QSqlDatabase:: exec () 는 사용 할 수 없습니다. QSqlQuery:: exec () 를 사용 하여 대체 합 니 다
주의: 사 무 를 사용 할 때 검색 어 를 만 들 기 전에 이 사 무 를 시작 해 야 합 니 다
다른 부분 은 QSqlDriver, QSqlQuery, Threads and SQL Module 을 볼 수 있 습 니 다.
구성원 기능 문서
QSqlDatabase:: QSqlDatabase () 는 빈 QSqlDatabase 대상 을 만 들 고 addDatabase (), removeDatabase (), database () 를 사용 하여 유효한 QSqlDatabase 대상
을 얻 습 니 다.
QSqlDatabase:: QSqlDatabase (const QSqlDatabase & other) 다른 복사 본 만 들 기
QSqlDatabase:: QSqlDatabase (const QString & type) [개인] 이것 은 재 부팅 함수 로 QSqlDatabase 연결 을 만 들 고 지정 한 드라이버 형식 을 사용 합 니 다. 이 형식 이 인식 되 지 않 으 면 이 데이터 베 이 스 는 연결 이 잘못 되 었 습 니 다. 현재 사용 가능 한 드라이버 형식 은 다음 과 같 습 니 다.
구동 유형 묘사 하 다. QDB2 IBM DB2 QIBASE Borland InterBase Driver QMYSQL MySQL 드라이버 QOCI Oracle 호출 인터페이스 구동 QODBC ODBC 드라이브 (마이크로소프트 SQL 서비스 포함) QPSQL PostgreSQL 드라이버 QSQLITE SQL 3 이상 QSQLITE2 SQLite 2 QTDS Sybase Adaptive server 제3자 구동 지원 이 필요 하 다 면 자신의 제3자 구동 을 포함 하여 다른 부분 을 동적 으로 불 러 올 수 있 습 니 다. SQL Database Drivers, registerSqlDriver (), and drivers () 를 볼 수 있 습 니 다.
QSqlDatabase:: QSqlDatabase (QSqlDriver * driver ()) [개인] 이것 은 과부하 함수 가 주어진 드라이브 를 사용 하여 데이터 베 이 스 를 만 드 는 것 입 니 다
QSqldatabase:: ~ QSqlDatabase () 는 이 대상 을 소각 하고 존재 하 는 모든 연결 의 원본 을 소각 합 니 다. 주의: 마지막 연결 이 삭 제 될 때 분석 함 수 는 close () 함 수 를 암시 적 으로 호출 합 니 다. 데이터베이스 연결 의 다른 부분 을 방출 할 때 close ()
를 보십시오.
QSqlDatabase QSqlDatabase:: addDatabase (const QString & type, const QString & connectionName = QLatin 1 String (defaultConnection) [정적]데이터베이스 연결 목록 에 데이터 베 이 스 를 드라이버 형식 으로 추가 하고 연 결 된 이름 은 연결 이름 입 니 다. 연 결 된 이름 의 데이터베이스 연결 이 이미 존재 한다 면 이 연결 은 삭 제 됩 니 다. 데이터 베 이 스 는 연결 이름 을 통 해 참조 되 며 새로 추 가 된 데이터 라 이브 러 리 의 연결 이 되 돌 아 옵 니 다. 이 형식 이 존재 하지 않 거나 불 러 올 수 없다 면 isVaild ()함 수 는 false 로 돌아 갑 니 다. 연결 이름 이 규정 되 어 있 지 않 으 면 새로운 연결 은 응용 프로그램 에 대한 기본 연결 이 됩 니 다. 뒤의 database () 에 대한 연결 이름 이 없 는 성명 의 내용 은 기본 연결 로 돌아 갑 니 다. 연결 이름 이 여기에 있 으 면 database (연결 이름) 를 사용 합 니 다.이 연결 을 되 돌려 줍 니 다. 경고: 현재 존재 하 는 연결 이름 이 같은 연결 을 추가 하면 새로운 연결 은 오래된 것 을 대체 합 니 다. 연결 이름 을 여러 번 지정 하지 않 고 이 함 수 를 호출 하면 기본 연결 이 대 체 됩 니 다. 주의: 이 기능 은 스 레 드 가 안전 한 다른 부분 입 니 다. database (), removeDatabase () 를 보십시오., Threads and the SQL Module
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다: