2013-06-24 5 views
0

이상한 문제가 있습니다. 내가 사용 SQLite는 데이터베이스 에 연결 Qt는 4 코드를 만드는거야 :Qt를 사용하여 데이터베이스에 연결할 수 없습니다.

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 
db.setDatabaseName("sb.sqlite"); 
bool db_ok = db.open(); 

때 내가 Qt는 창조주의 코드를 실행하거나 직접 릴리스 폴더에서 나는 데이터베이스에 연결할 수 있어요하지만 언제 I 어떤 이유로 든 연결할 수없는 다른 컴퓨터에 릴리스 폴더 (데이터베이스 파일 포함)를 복사하십시오.

db.setDatabaseName("C://release//sb.sqlite"); 

답변

2

두 가지 : 첫째

: 경로를 작성할 때

이 이 , 당신이 중 하나가 다시 탈출 슬래시를 사용할 필요가

나는 또한 데이터베이스 파일의 전체 경로를 사용하여 시도

: \\ 또는 슬래시를 사용하십시오 : /

Qt에서 슬래시를 벗어나려고하면 문제가 발생할 수 있습니다.

둘째하십시오 Qt는 응용 프로그램을 배포 할 때

, 필요한 모든 Qt는 모듈을 사용할 수 있어야합니다, 그리고 당신이 필요로하는 Qt는 플러그인.

누락 된 Qt 모듈은 누락 된 런타임 기능을 유발하지만로드시 즉시 충돌을 유발합니다.

스레드 아래 당신이보고있는 문제를 해결해야합니다 단지 sqldrivers에 sqlite4.dll 넣어

http://qt-project.org/forums/viewthread/21518

가 바로 옆에 실행

http://qt-project.org/doc/qt-4.8/qcoreapplication.html#libraryPaths

에 폴더를

콘솔에 팝업으로 표시되는 런타임 디버그 정보 이외에도 코드에이 같은 통화 D : 또한 db.open() 대한 문서에서 확인

bool QSqlDatabase::isValid()

, 당신도 무슨 일이 일어나고 있는지 볼 수 QSqlError QSqlDatabase::lastError()를 호출 할 수 있습니다.

희망이 있습니다.

+0

고맙습니다. 해결 됐습니다. – unfamous

관련 문제