qt로 여러 데이터베이스 열기

5432 단어 windows
1. 수요
원래 저장된 데이터는 sqlite의 메모리 데이터베이스를 사용했는데 나중에 설정 정보 등도 데이터베이스에 저장해야 한다. 프로그램 설정 후 닫고 열면 저장된 설정 정보를 정상적으로 표시할 수 있다.
2. 해결
1. 프로필 정보를 일반 프로필(ini 등)에 쓰기, 첫 번째 버전은 이렇게 실행, 단점은 파일 읽기와 쓰기가 좀 느리다.프로그램에서 두 가지 데이터베이스, 메모리 데이터베이스와 파일 데이터베이스를 사용하여 민감한 정보를 메모리 데이터베이스에 저장하고 사용자 설정 정보 등을 파일 데이터베이스에 저장하여 장기적으로 저장한다.
3. 부분 코드
1. 메모리 데이터베이스 만들기
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", "memory");
db.setDatabaseName(":memory:");
if (!db.open()) {
        LOG_ALL_ERROR(QStringLiteral("failed open sqlite."));
        return bret;
}

2. 파일 데이터베이스 만들기
QString strdbpath("");
strdbpath = QCoreApplication::applicationDirPath();
strdbpath += "/db";
QDir dir("");
dir.mkpath(strdbpath);
strdbpath += "/mysqlite.db";
QSqlDatabase dbset = QSqlDatabase::addDatabase("QSQLITE", "file");
dbset.setDatabaseName(strdbpath);
if (!dbset.open()) {
    LOG_ALL_ERROR(QStringLiteral("failed open mysqlite.db"));
    return bret;
}

3. 메모리 데이터베이스 사용
QSqlQuery query(QSqlDatabase::database("memory", true));
bret = query.exec("create table backlist(no varchar(100), "
                  "name varchar(200),color varchar(100), "
                  "size varchar(100), retail double, "
                  "discount double, unit double, "
                  "attrid varchar(33), salenum int, "
                  "backmax int, backnum int, totalprice double, "
                  "serial varchar(100), orderid varchar(33), "
                  "date varchar(100))");

4. 파일 데이터베이스 사용
QSqlQuery setquery(QSqlDatabase::database("file", true));
bret = setquery.exec("create table printset(btitle INTEGER,bshop INTEGER,bbarcode INTEGER, "
    "bsellid INTEGER,bcashdesk INTEGER,bcashier INTEGER, "
    "bdate INTEGER,bmemid INTEGER,bscore INTEGER, "
    "bpayable INTEGER,bprivilege INTEGER,btotal INTEGER, "
    "bgoodname INTEGER,bgoodcount INTEGER,bunit INTEGER, "
    "bsum INTEGER,bdiscount INTEGER,bprice INTEGER, "
    "bcash INTEGER,bbank INTEGER,bchange INTEGER, "
    "btel INTEGER,bend INTEGER)");

4. 참조
1.http://blog.csdn.net/abeldeng/article/details/24767245이 글은 창설에 대해 설명하고 사용하지 않았다.qt 조수

좋은 웹페이지 즐겨찾기