Estoy usando VS2008 & QT plugin para hacer que mi aplicación. Después de hacer el paquete cuando estoy ejecutando la aplicación que estoy recibiendo el error :

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") 

He añadido el qsqlite.dll a mi paquete & también se ha cambiado el libpath. Pero todavía estoy recibiendo este error. Cómo resolver esto.

Mi Código::

  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;
  • ahora soy capaz de construir en el VS con éxito. Y también estoy haciendo paquete de drivers, pero sigue siendo la base de datos no funciona en otro sistema
InformationsquelleAutor amrit_neo | 2011-03-01

2 Comentarios

  1. 31

    Los controladores necesitan ser colocados bajo «sqldrivers», no en el mismo directorio que el ejecutable (que se cargan en tiempo de ejecución, y Qt busca en «sqldrivers»).
    Una estructura típica de una de nuestras aplicaciones instaladas, es como esto:

    .:
    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
    • Todavía no entiendo, donde debe sqldrivers ser colocado ?
    • sqldrivers directorio debe ser colocado en la misma ubicación que el archivo ejecutable principal.
  2. 0

    Plataforma Linux:
    Construir su Fuente de Qt con el BR2_PACKAGE_QT5BASE_SQLITE_QT=y opción habilitada en .config archivo, y copia sqldrivers generado en la ruta de salida lib/qt/plugins/sqldrivers/libqsqlite.so a /usr/lib/qt/plugins/sqldrivers/en Blanco a la junta directiva y ejecutar la aplicación.

    También se puede Comprobar dónde y todos sus binario/aplicación busca las bibliotecas y el uso de plugins «QApplication::libraryPaths()» de la API de

Dejar respuesta

Please enter your comment!
Please enter your name here