qt로 여러 데이터베이스 열기
5432 단어 windows
원래 저장된 데이터는 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 조수
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
제한된 크기의 디렉토리를 만드는 방법오늘 저는 장치에 공간이 없을 때 백업 중에 응용 프로그램이 어떻게 작동하는지 테스트(및 수정)하는 작업이 있습니다. 결과적으로 "남은 공간 없음"오류로 백업이 실패하면 새 파일이 없어야 합니다. 지금까지 문제를 재...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.