Описание тега qsqldatabase

Класс QSqlDatabase представляет соединение с базой данных в Qt 5.0.

Щелкните здесь для документации

Класс QSqlDatabase представляет соединение с базой данных.

Класс QSqlDatabase предоставляет интерфейс для доступа к базе данных через соединение. Экземпляр QSqlDatabase представляет соединение. Соединение обеспечивает доступ к базе данных через один из поддерживаемых драйверов базы данных, производных от QSqlDriver.

Кроме того, вы можете создать подкласс своего собственного драйвера базы данных от QSqlDriver. См. Как написать собственный драйвер базы данных для получения дополнительной информации.

Создайте соединение (т.е. экземпляр QSqlDatabase), вызвав одну из статических функций addDatabase(), где вы указываете драйвер или тип используемого драйвера (т.е. к какой базе данных вы будете обращаться?) И имя соединения. Соединение известно по собственному имени, а не по имени базы данных, к которой оно подключается. Вы можете иметь несколько подключений к одной базе данных. QSqlDatabase также поддерживает концепцию соединения по умолчанию, то есть безымянного соединения. Чтобы создать соединение по умолчанию, не передавайте аргумент имени соединения при вызове addDatabase(). Впоследствии, когда вы вызываете любую статическую функцию-член, которая принимает аргумент имени соединения, если вы не передаете аргумент имени соединения, предполагается соединение по умолчанию. В следующем фрагменте показано, как создать и открыть соединение по умолчанию с базой данных PostgreSQL: QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL"); db.setHostName("acidalia"); db.setDatabaseName("customdb"); db.setUserName("мохито"); db.setPassword("J0a1m8"); bool ok = db.open();

После создания объекта QSqlDatabase установите параметры подключения с помощью setDatabaseName(), setUserName(), setPassword(), setHostName(), setPort() и setConnectOptions(). Затем вызовите open(), чтобы активировать физическое соединение с базой данных. Соединение невозможно использовать, пока вы его не откроете.

Соединение, определенное выше, будет соединением по умолчанию, потому что мы не дали имя соединения для addDatabase(). Впоследствии вы можете получить соединение по умолчанию, вызвав database() без аргумента имени соединения:

QSqlDatabase db = QSqlDatabase::database();QSqlDatabase - это класс значений. Изменения, внесенные в соединение с базой данных через один экземпляр QSqlDatabase, повлияют на другие экземпляры QSqlDatabase, которые представляют то же соединение. Используйте cloneDatabase(), чтобы создать независимое соединение с базой данных на основе существующего.

Если вы создаете несколько подключений к базе данных, укажите уникальное имя подключения для каждого из них при вызове addDatabase(). Используйте database() с именем соединения, чтобы получить это соединение. Используйте removeDatabase() с именем соединения, чтобы удалить соединение. QSqlDatabase выводит предупреждение, если вы пытаетесь удалить соединение, на которое ссылаются другие объекты QSqlDatabase. Используйте contains(), чтобы увидеть, есть ли данное имя соединения в списке соединений. После установки соединения вы можете вызвать tables (), чтобы получить список таблиц в базе данных, вызвать primaryIndex(), чтобы получить первичный индекс таблицы, и вызвать record(), чтобы получить метаинформацию о полях таблицы (например, названия полей).