Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

QSqlQuery::exec: database not open

Tags:

database

qt

qtsql

I'm working on qt, my database was rightly connected with qt but suddenly i have the following problem every time i debug,,,i i become not able to fetch or to add data from/to the database,,, i don't know whats's the matter but i'm new to qt.

QSqlQuery::exec: database not open

could anybody help please ,,it's an emergency case here the code

db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DSN='';DBQ=C:/Users/user/Desktop/Final_Version/db.accdb");
db.close();
db.open();
QSqlQuery query;
query.exec("Select ID from TestId");
while(query.next())
{
 TestId = query.value(0).toInt();
}
db.close();
//==================================================================================
like image 825
Nermeeno Alami Avatar asked Oct 19 '25 13:10

Nermeeno Alami


2 Answers

QSqlQuery *query = new QSqlQuery(db);

I think that can help you! :)

like image 85
darialarionova Avatar answered Oct 22 '25 04:10

darialarionova


You need to add qsql dll files for Microsoft Access Driver within your sqldrivers folder

Check following if you are debugging

  1. check your project settings for dll reference(in .pro file of your project, you have to put QT += sql, if you are using Visual studio integration you check reference in project settings form properties)
  2. check you Qtdirectory for driver folder and dll's

If you are distributing your app, you just copy sql driver folder also with your executable along with required dlls.

edit your QSqlQuery object binded with database connection

db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb};FIL={MSAccess};DBQ=C:/Users/user/Desktop/Final_Version/db.mdb");
database.open();
QSqlQuery query(db);
query.exec("Select ID from TestId");
while(query.next())
{
    TestId = query.value(0).toInt();
}
db.close();

I think, some of this will help you... :)

like image 22
imalvare Avatar answered Oct 22 '25 02:10

imalvare



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!