Qt 클래스 학습QSqlDatabase

5203 단어 Qt
  • 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
  • 좋은 웹페이지 즐겨찾기