Qt/FAQ/QtSql
Материал из Wiki.crossplatform.ru
(Различия между версиями)
Root (Обсуждение | вклад) |
Lit-uriy (Обсуждение | вклад) (Добавил в категорию) |
||
| (2 промежуточные версии не показаны) | |||
| Строка 12: | Строка 12: | ||
!СУБД | !СУБД | ||
|- valign="top" class="odd" | | |- valign="top" class="odd" | | ||
| - | |[[#qdb2 | QDB2]] | + | |[[Qt:Документация_4.3.2/sql-driver#qdb2 | QDB2]] |
|IBM DB2 (версия 7.1 и выше) | |IBM DB2 (версия 7.1 и выше) | ||
|- valign="top" class="even" | | |- valign="top" class="even" | | ||
| - | |[[#qibase | QIBASE]] | + | |[[Qt:Документация_4.3.2/sql-driver#qibase | QIBASE]] |
|Borland InterBase | |Borland InterBase | ||
|- valign="top" class="odd" | | |- valign="top" class="odd" | | ||
| - | |[[#qmysql | QMYSQL]] | + | |[[Qt:Документация_4.3.2/sql-driver#qmysql | QMYSQL]] |
|MySQL | |MySQL | ||
|- valign="top" class="even" | | |- valign="top" class="even" | | ||
| - | |[[#qoci | QOCI]] | + | |[[Qt:Документация_4.3.2/sql-driver#qoci | QOCI]] |
|Oracle Call Interface Driver | |Oracle Call Interface Driver | ||
|- valign="top" class="odd" | | |- valign="top" class="odd" | | ||
| - | |[[#qodbc | QODBC]] | + | |[[Qt:Документация_4.3.2/sql-driver#qodbc | QODBC]] |
|Open Database Connectivity (ODBC) - Microsoft SQL Server и другие ODBC совместимые базы данных | |Open Database Connectivity (ODBC) - Microsoft SQL Server и другие ODBC совместимые базы данных | ||
|- valign="top" class="even" | | |- valign="top" class="even" | | ||
| - | |[[#qpsql | QPSQL]] | + | |[[Qt:Документация_4.3.2/sql-driver#qpsql | QPSQL]] |
|PostgreSQL (версия 7.3 и выше) | |PostgreSQL (версия 7.3 и выше) | ||
|- valign="top" class="odd" | | |- valign="top" class="odd" | | ||
| - | |[[#qsqlite2 | QSQLITE2]] | + | |[[Qt:Документация_4.3.2/sql-driver#qsqlite2 | QSQLITE2]] |
|[[Qt:Документация 4.3.2/3rdparty#sqlite | SQLite]] версия 2 | |[[Qt:Документация 4.3.2/3rdparty#sqlite | SQLite]] версия 2 | ||
|- valign="top" class="even" | | |- valign="top" class="even" | | ||
| - | |[[#qsqlite | QSQLITE]] | + | |[[Qt:Документация_4.3.2/sql-driver#qsqlite | QSQLITE]] |
|[[Qt:Документация 4.3.2/3rdparty#sqlite | SQLite]] версия 3 | |[[Qt:Документация 4.3.2/3rdparty#sqlite | SQLite]] версия 3 | ||
|- valign="top" class="odd" | | |- valign="top" class="odd" | | ||
| - | |[[#qtds | QTDS]] | + | |[[Qt:Документация_4.3.2/sql-driver#qtds | QTDS]] |
|Sybase Adaptive Server | |Sybase Adaptive Server | ||
|} | |} | ||
'''Замечаение:''' Для сборки плагина драйвера вам нужно иметь соответствующую клиентскую библиотеку для вашей системы управления базами данных (СУБД). Это обеспечивает доступ к API СУБД, и, как правило, поставляется вместе с ней. Большинство программ установки также позволяют установить "библиотеки для разработки", и то, что вам нужно. Эти библиотеки отвечают за низкоуровневое взаимодействия с СУБД. | '''Замечаение:''' Для сборки плагина драйвера вам нужно иметь соответствующую клиентскую библиотеку для вашей системы управления базами данных (СУБД). Это обеспечивает доступ к API СУБД, и, как правило, поставляется вместе с ней. Большинство программ установки также позволяют установить "библиотеки для разработки", и то, что вам нужно. Эти библиотеки отвечают за низкоуровневое взаимодействия с СУБД. | ||
| + | |||
| + | == Получение столбцов и строк из SQL запроса == | ||
| + | <source lang=cpp-qt>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, или тот тип, к которому вы хотите привести... | ||
| + | // ... | ||
| + | } | ||
| + | }</source> | ||
| + | |||
| + | |||
| + | [[Категория:Qt FAQ]] | ||
Текущая версия на 07:52, 27 января 2009
[править] 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, или тот тип, к которому вы хотите привести... // ... } }
