Qt, Базы данных

Подключение к базе данных в Qt

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

[pastacode lang=»cpp» manual=»%23include%20%3CQMessageBox%3E%20%2F%2F%D0%B4%D0%BB%D1%8F%20%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B0%20%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8E%0A%23include%20%3CQSqlDatabase%3E%0A%23include%20%3CQSqlError%3E» message=»» highlight=»» provider=»manual»/]

QMessageBox позволит вывести информацию о статусе подключения к базе данных, QSqlDatabase позволит совершить это подключение, а без QSqlError мы не сможем узнать, какая ошибка возникла при неудачном подключении к базе.
Необходимо также в тексте файла проекта (*.pro) указать следующее:

QT += sql

[pastacode lang=»cpp» manual=»%2F*QPSQL%20-%20%D0%BD%D0%B0%D0%B7%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80%D0%B0%20%D0%B4%D0%BB%D1%8F%20%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BA%20%D1%82%D0%BE%D0%B9%20%D0%B8%D0%BB%D0%B8%20%D0%B8%D0%BD%D0%BE%D0%B9%20%D0%A1%D0%A3%D0%91%D0%94%2C%20%D0%B2%20%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%BC%20%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B5%20-%20%D0%BA%20PostgreSQL%3B%20%D0%B4%D0%BB%D1%8F%20%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BA%20%D0%B1%D0%B0%D0%B7%D0%B5%20MS%20SQL%20Server%20%D0%B2%D0%B0%D0%BC%20%D0%BD%D0%B5%D0%BE%D0%B1%D1%85%D0%BE%D0%B4%D0%B8%D0%BC%D0%BE%20%D1%81%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D0%B0%20%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C%20%D0%B8%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%20ODBC*%2F%0A%0AQSqlDatabase%20db%20%3D%20QSqlDatabase%3A%3AaddDatabase(%22QPSQL%22)%3B%20%20%2F*%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%20%D0%BD%D0%B0%D0%B8%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80%D0%B0%20%D0%91%D0%94%20%D1%82%D0%B0%D0%BA%D0%B6%D0%B5%20%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%20%D1%83%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D1%8C%20%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5%20%D0%BD%D0%B0%D0%B8%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BA%20%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D1%83%20%D0%91%D0%94%3A%20addDatabase(%22QPSQL%22%2C%20%22myConnection1%22)%0A%D0%B8%D0%BC%D1%8F%20%D0%B8%D0%BB%D0%B8%20%D0%B0%D0%B4%D1%80%D0%B5%D1%81%20%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0%2C%20%D0%B3%D0%B4%D0%B5%20%D0%BD%D0%B0%D1%85%D0%BE%D0%B4%D0%B8%D1%82%D1%81%D1%8F%20%D0%A1%D0%A3%D0%91%D0%94*%2F%0Adb.setHostName(%22localhost%22)%3B%0A%2F%2F%D0%B8%D0%BC%D1%8F%20%D0%B1%D0%B0%D0%B7%D1%8B%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%0Adb.setDatabaseName(%22myDB%22)%3B%0A%2F%2F%D0%B8%D0%BC%D1%8F%20%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F%0Adb.setUserName(%22user1%22)%3B%0A%2F%2F%D0%B5%D0%B3%D0%BE%20%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8C%0Adb.setPassword(%22123321%22)%3B%0A%2F*%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D0%B2%D0%B0%D0%B5%D0%BC%20%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%3B%20%D0%B5%D1%81%D0%BB%D0%B8%20%D0%BD%D0%B5%D1%83%D0%B4%D0%B0%D1%87%D0%BD%D0%BE%20-%20%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B8%D0%BC%20%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BE%D0%B1%20%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B5*%2F%0Aif%20(!db.open())%0AQMessageBox%3A%3Acritical(NULL%2CQObject%3A%3Atr(%22%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0%22)%2Cdb.lastError().text())%3B» message=»» highlight=»» provider=»manual»/]

При попытке подключения к базе данных PostgreSQL можно получить сообщение об ошибке «Driver not loaded». Это значит, что ваша система не может найти драйвер PostgreSQL. Необходимо в системный путь (PATH) вписать пути к папкам lib и bin вашей версии СУБД.

При удачном подключении к базе данных все обращения к базе в вашем проекте будут автоматически распознавать это подключение. Если подключение было задано без наименования подключения, то оно будет расцениваться как подключение по умолчанию. В проекте обязательно должно быть такое подключение, иначе получим ошибку. Работая с потоками в проекте для каждого потока должно быть свое подключение под своим именем.

Подключение к базе данных Microsoft SQL Server в Qt.

Инфо обо мне: https://secretsilent.ru/info/

Подключение к базе данных в Qt: 3 комментария

Оставьте своё мнение...

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.