SQL 编程

This overview assumes that you have at least a basic knowledge of SQL. You should be able to understand simple SELECT , INSERT , UPDATE ,和 DELETE statements. Although the QSqlTableModel class provides an interface to database browsing and editing that does not require a knowledge of SQL, a basic understanding of SQL is highly recommended. A standard text covering SQL databases is An Introduction to Database Systems (7th Ed.) by C. J. Date, ISBN 0201385902.

话题:

数据库类

这些类提供对 SQL 数据库的访问。

QSql

包含用于整个 Qt SQL 模块的杂项标识符

QSqlDatabase

处理数据库连接

QSqlDriver

Abstract base class for accessing specific SQL databases

QSqlDriverCreator

Template class that provides a SQL driver factory for a specific driver type

QSqlDriverCreatorBase

The base class for SQL driver factories

QSqlError

SQL 数据库错误信息

QSqlField

操纵 SQL 数据库表和视图中的字段

QSqlIndex

Functions to manipulate and describe database indexes

QSqlQuery

执行和操纵 SQL 语句的手段

QSqlQueryModel

Read-only data model for SQL result sets

QSqlRecord

封装数据库记录

QSqlRelationalTableModel

Editable data model for a single database table, with foreign key support

QSqlResult

Abstract interface for accessing data from specific SQL databases

QSqlTableModel

Editable data model for a single database table

SQL 类分为 3 层:

驱动层

This comprises the classes QSqlDriver , QSqlDriverCreator , QSqlDriverCreatorBase , QSqlDriverPlugin ,和 QSqlResult .

This layer provides the low-level bridge between the specific databases and the SQL API layer. See SQL 数据库驱动程序 了解更多信息。

SQL API 层

These classes provide access to databases. Connections are made using the QSqlDatabase class. Database interaction is achieved by using the QSqlQuery class. In addition to QSqlDatabase and QSqlQuery , the SQL API layer is supported by QSqlError , QSqlField , QSqlIndex ,和 QSqlRecord .

用户界面层

These classes link the data from a database to data-aware widgets. They include QSqlQueryModel , QSqlTableModel ,和 QSqlRelationalTableModel . These classes are designed to work with Qt's 模型/视图框架 .

注意, QCoreApplication object must be instantiated before using any of these classes.

连接到数据库