Соединение с базой данных с помощью Qt


Для соединения с базой данных прежде всего нужно активизировать драйвер. для этого вызывается статический метод QSqlDatabase::addDatabase(). В него нужно передать строку, обозначающую идентификатор драйвера СУБД.

Для того чтобы подключиться к базе данных, потребуется четыре следующих параметра:

  • имя базы данных — передается в метод QSqlDatabase:: setDatabaseName();
  • имя пользователя, желающего к ней подключиться, — передается в метод QSqlDatabase::setUserName();
  • имя компьютера, на котором размещена база данных, — передается в метод QSqlDatabase::setHostName();
  • пароль — передается в метод QSqlDatabase::setPassword().

static bool createConnection()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("addressbook");

    db.setUserName("elton"); 
    db.setHostName("epica"); 
    db.setPassword("password"); 
    if (!db.open()) {
        qDebug() << "Cannot open database:" << db.lastError();
        return false;
    }
    return true;
}

Методы должны вызываться из объекта, созданного с помощью статического метода QSqlDatabase::addDatabase().

Само соединение осуществляется методом QSqlDatabase::open(). Значение, возвращаемое им, рекомендуется проверять. В случае возникновения ошибки, информацию о ней можно получить с помощью метода QSqlDatabase::lastError(), который возвращает объект класса QSqlError.

Его содержимое можно вывести на экран с помощью qDebug(). Если у вас возникла необходимость получить строку с ошибкой, то нужно вызвать из объекта класса QSqlError метод text().

Читать далее: Исполнение команд SQL в Qt