2011-03-01 23 views
17

Uygulamamı yapmak için VS2008 & QT eklentisi kullanıyorum. Ben hatası alıyorum uygulamayı çalıştırıyorum zaman paketi yaptıktan sonra: Ben paketine & için qsqlite.dll eklemişQSQLITE sürücüsü yüklü değil - nerede qt veritabanı sürücüsü eklentileri koymak

QSqlDatabase: QSQLITE driver not loaded 
QSqlDatabase: available drivers: 
Database error: QSqlError(-1, "Driver not loaded", "Driver not loaded") 
QSqlError(-1, "Driver not loaded", "Driver not loaded") 

da LIBPATH değiştirdi. Ama yine de bu hatayı alıyorum. Bunu nasıl çözebilirim?

Benim Kod ::

sürücüleri değil yürütülebilir aynı dizinde (bunlar çalışma zamanında yüklenen ve Qt "sqldrivers" onları arar içinde, "sqldrivers" altına gereken
QStringList str; 
str.append("."); 
a.setLibraryPaths(str); 
a.addLibraryPath("./sqldrivers/"); 

//a.addLibraryPath("."); 

qDebug()<<"my library path : "<<a.libraryPaths(); 

QLibrary sqlib("qsqlite4.dll"); 
sqlib.load(); 
qDebug()<<"my library loaded"<<sqlib.isLoaded(); 

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 
qDebug()<<"Database error:"<<db.lastError(); 

db.setDatabaseName("vimukti1234"); 
qDebug()<< db.lastError(); 

db.open(); 
QSqlQuery query; 
+0

Artık başarılı bir şekilde VS oluşturabiliyorum. Ve ben de sürücülerinin paketini yapıyorum ama yine de veritabanı diğer sistemde çalışmıyor –

cevap

30

). Bizim yüklü uygulamalar birinin Tipik bir yapı şu şekildedir:

.: 
total 26616 
-rwxr-xr-x 1 root root 2245632 Sep 29 03:53 AlvaEditor.exe 
-rwxr-xr-x 1 root root 2335232 Sep 29 03:53 QtCore4.dll 
-rwxr-xr-x 1 root root 8421376 Sep 29 03:53 QtGui4.dll 
-rwxr-xr-x 1 root root 199168 Sep 29 03:53 QtSql4.dll 
-rwxr-xr-x 1 root root 306688 Sep 29 03:53 libctemplate.dll 
-rwxr-xr-x 1 root root 26624 Sep 29 03:53 qgif4.dll 
-rwxr-xr-x 1 root root 28672 Sep 29 03:53 qico4.dll 
-rwxr-xr-x 1 root root 200704 Sep 29 03:53 qjpeg4.dll 
-rwxr-xr-x 1 root root 222720 Sep 29 03:53 qmng4.dll 
-rwxr-xr-x 1 root root 439808 Sep 29 03:53 qsqlite4.dll 
-rwxr-xr-x 1 root root 21504 Sep 29 03:53 qsvg4.dll 
-rwxr-xr-x 1 root root 287232 Sep 29 03:53 qtiff4.dll 
drwxr-xr-x 2 root root 4096 Sep 29 03:53 sqldrivers 

./sqldrivers: 
total 432 
-rwxr-xr-x 1 root root 439808 Sep 29 03:53 qsqlite4.dll 
+0

+1 Teşekkür ederim, teşekkür ederim teşekkür ederim! Bütün akşam bunun için boggled. –

+0

Bu da bana yardımcı oldu. Unutmayın ki, sqldrivers'ı dahil etmek zorunda kaldım ve yaşlanma düzenleyicilerimin neden çalışmadığını merak ettim. Alkış +1 :) – T3CHN0CR4T

+0

Hala anlamıyorum, sqldrivers yerleştirilmelidir? – Liviu

0

bu ilk deneyin:

qDebug() << QSqlDatabase::drivers(); 

mevcut Sürücüleri kontrol etmek.

3

Eh, işlev: addDatabase ("QSQLITE"); İlk sürücü, iki parametre alır ve ikinci Şimdi (Bir QString olarak geçirilen) bağlantınızın adı,

olduğunu aşağıdakileri deneyin:

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", "SQLITE"); 
Benim için çalıştı

, bu yüzden sanırım Senin için çalışacak.

qDebug () << QSqlDatabase :: Drivers () ; 

İyi şanslar:

Sen izleyerek SQLite kontrol edebilirsiniz (SQLite varsayarsak yüklü sürücüler arasında olduğunu)!

Zaher J.G.

İlgili konular