2011-03-01 3 views
17

मैं अपना आवेदन करने के लिए VS2008 & QT प्लगइन का उपयोग कर रहा हूं। पैकेज बनाने जब मैं आवेदन मैं त्रुटि हो रही है चला रहा हूँ के बाद:QSQLITE ड्राइवर लोड नहीं हुआ - qt डेटाबेस ड्राइवर प्लगइन्स कहां रखना है

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

मैं अपने पैकेज & को qsqlite.dll जोड़ लिया है भी libpath बदल दिया है। लेकिन फिर भी मुझे यह त्रुटि मिल रही है। इसे कैसे हल करें।

मेरे संहिता ::

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

अब मैं सफलतापूर्वक वीएस में निर्माण करने में सक्षम हूं। एएनडी मैं ड्राइवरों का पैकेज भी बना रहा हूं लेकिन फिर भी डेटाबेस अन्य सिस्टम में काम नहीं कर रहा है –

उत्तर

30

ड्राइवरों नहीं (वे क्रम पर लोड किए गए हैं, और क्यूटी "sqldrivers" में उनके लिए लग रहा है निष्पादन उसी निर्देशिका में, "sqldrivers" के अंतर्गत रखा जाना करने की जरूरत है)। हमारे स्थापित अनुप्रयोगों में से एक का एक विशिष्ट संरचना इस तरह है:

.: 
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 धन्यवाद धन्यवाद, धन्यवाद, धन्यवाद !! मैं इस शाम को चकित कर रहा था। –

+0

इससे मुझे भी मदद मिली। भूल गए कि मुझे sqldrivers शामिल करना पड़ा और सोचने में उम्र बिताई कि मेरे रिलीज बिल्डर्स क्यों काम नहीं कर रहे थे। चीयर्स +1 :) – T3CHN0CR4T

+0

मुझे अभी भी समझ में नहीं आता है, sqldrivers कहाँ रखा जाना चाहिए? – Liviu

0

यह पहली प्रयास करें:

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

उपलब्ध ड्राइवर की जाँच करने के।

3

ठीक है, फ़ंक्शन: addDatabase ("QSQLITE"); दो पैरामीटर लेता है, पहले ड्राइवर है और दूसरा अपने कनेक्शन के नाम पर, (एक QString के रूप में पारित)

अब है, निम्न प्रयास करें:

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", "SQLITE"); 

यह मेरे लिए काम किया है, इसलिए मुझे लगता है कि यह आपके लिए काम करेगा। (यह मानते हुए SQLite अपने स्थापित ड्राइवरों में से एक है)

आप का पालन करते हुए SQLite के लिए जाँच कर सकते हैं:

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

गुड लक!

ज़हीर जेजी

संबंधित मुद्दे