Hi all!

I have the following code:

Qt Code:
  1. #ifndef QMYSQLCONNECTION_H
  2. #define QMYSQLCONNECTION_H
  3.  
  4. #include <QObject>
  5. #include <QSqlDatabase>
  6.  
  7. class QMysqlConnection: public QObject, protected QSqlDatabase
  8. {
  9. Q_OBJECT
  10.  
  11. friend class QMysqlTable;
  12.  
  13. public:
  14. QMysqlConnection(const QString& host, const QString& user, const QString&
  15. password, const QString database, QObject* = 0);
  16.  
  17. bool isOpen(void) const;
  18. void close(void);
  19. };
  20.  
  21. #endif // QMYSQLCONNECTION_H
To copy to clipboard, switch view to plain text mode 

Qt Code:
  1. #include <QDebug>
  2. #include <QSqlError>
  3.  
  4. #include "QMysqlConnection.h"
  5.  
  6. // Public functions
  7. QMysqlConnection::QMysqlConnection(const QString& host, const QString& user,
  8. const QString& password, const QString database, QObject* parent):
  9. QObject(parent)
  10. {
  11. this->addDatabase("QMYSQL");
  12.  
  13. this->setHostName(host);
  14. this->setUserName(user);
  15. this->setPassword(password);
  16. this->setDatabaseName(database);
  17.  
  18. this->open();
  19.  
  20. qDebug() << "Last connection error = " << this->lastError();
  21. }
  22.  
  23. bool QMysqlConnection::isOpen(void) const
  24. {
  25. return QSqlDatabase::isOpen();
  26. }
  27.  
  28. void QMysqlConnection::close(void)
  29. {
  30. QSqlDatabase::close();
  31. }
To copy to clipboard, switch view to plain text mode 

This returns me the following error:
QSqlError(-1, "Driver not loaded", "Driver not loaded")

But if I change this code
Qt Code:
  1. this->addDatabase("QMYSQL");
  2.  
  3. this->setHostName(host);
  4. this->setUserName(user);
  5. this->setPassword(password);
  6. this->setDatabaseName(database);
  7.  
  8. this->open();
To copy to clipboard, switch view to plain text mode 
to this code:
Qt Code:
  1. QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
  2.  
  3. db.setHostName(host);
  4. db.setUserName(user);
  5. db.setPassword(password);
  6. db.setDatabaseName(database);
  7.  
  8. db.open();
To copy to clipboard, switch view to plain text mode 

it works! Why this code works and the other code not?