Qt/FAQ/QtSql

Материал из Wiki.crossplatform.ru

Перейти к: навигация, поиск

[править] QtSql - работа с базами данных

Модуль QtSql - предоставляет независимый от типа базы данных и платформы интерфейс для доступа к базам данных с помощью языка SQL.

[править] Поддерживаемые базы данных

В таблице ниже представлен список драйверов поставляемых с Qt. Из-за несовместимости с GPL лицензией, не все плагины поставляются с Qt Open Source Edition.


Имя драйвера СУБД
QDB2 IBM DB2 (версия 7.1 и выше)
QIBASE Borland InterBase
QMYSQL MySQL
QOCI Oracle Call Interface Driver
QODBC Open Database Connectivity (ODBC) - Microsoft SQL Server и другие ODBC совместимые базы данных
QPSQL PostgreSQL (версия 7.3 и выше)
QSQLITE2 SQLite версия 2
QSQLITE SQLite версия 3
QTDS Sybase Adaptive Server

Замечаение: Для сборки плагина драйвера вам нужно иметь соответствующую клиентскую библиотеку для вашей системы управления базами данных (СУБД). Это обеспечивает доступ к API СУБД, и, как правило, поставляется вместе с ней. Большинство программ установки также позволяют установить "библиотеки для разработки", и то, что вам нужно. Эти библиотеки отвечают за низкоуровневое взаимодействия с СУБД.

[править] Получение столбцов и строк из SQL запроса

QSqlQuery query = pDb->Exec( szQuery); // szQuery наша строка запроса
QSqlRecord rec = query.record();
qnColCount = rec.count();
 
// Получаем столбцы
for( int n=0; n < qnColCount; ++n)
{
      QString szCol = rec.fieldName( n);
      // ...
}
 
/// Получаем строки
while( query.next())
{
   for( int n=0; n < qnColCount; ++n)
   {
	  QString szRow = query.value( n).toString(); // toInt, или тот тип, к которому вы хотите привести...
	  // ...
   }
}