---
name: "qsqldriver"
section: "3qt"
platform: "linux"
package: "qt3-doc"
version: "3:3.3.8b-7"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/qsqldriver"
---

# qsqldriver(3qt)

Abstract base class for accessing SQL databases

## NAME

QSqlDriver - Abstract base class for accessing SQL databases

## SYNOPSIS

`#include <qsqldriver.h>`

Inherits QObject.

### Public Members

**enum DriverFeature { Transactions, QuerySize, BLOB, Unicode, PreparedQueries, NamedPlaceholders, PositionalPlaceholders }**\
 **QSqlDriver ( QObject \* parent = 0, const char \* name = 0 )**\
 **~QSqlDriver ()**\
 **bool isOpen () const**\
 **bool isOpenError () const**\
 **virtual bool beginTransaction ()**\
 **virtual bool commitTransaction ()**\
 **virtual bool rollbackTransaction ()**\
 **virtual QStringList tables ( const QString & tableType ) const**\
 **virtual QSqlIndex primaryIndex ( const QString & tableName ) const**\
 **virtual QSqlRecord record ( const QString & tableName ) const**\
 **virtual QSqlRecord record ( const QSqlQuery & query ) const**\
 **virtual QSqlRecordInfo recordInfo ( const QString & tablename ) const**\
 **virtual QSqlRecordInfo recordInfo ( const QSqlQuery & query ) const**\
 **virtual QString nullText () const**\
 **virtual QString formatValue ( const QSqlField \* field, bool trimStrings = FALSE ) const**\
 **QSqlError lastError () const**\
 **virtual bool hasFeature ( DriverFeature f ) const = 0**\
 **virtual bool open ( const QString & db, const QString & user = QString::null, const QString & password = QString::null, const QString & host = QString::null, int port = -1 ) = 0**\
 **virtual void close () = 0**\
 **virtual QSqlQuery createQuery () const = 0**\
 **bool open ( const QString & db, const QString & user, const QString & password, const QString & host, int port, const QString & connOpts )**\

### Protected Members

**virtual void setOpen ( bool o )**\
 **virtual void setOpenError ( bool e )**\
 **virtual void setLastError ( const QSqlError & e )**\

## DESCRIPTION

The QSqlDriver class is an abstract base class for accessing SQL databases.

This class should not be used directly. Use QSqlDatabase instead.

See also Database Classes.

### Member Type Documentation

## QSqlDriver::DriverFeature

This enum contains a list of features a driver may support. Use hasFeature() to query whether a feature is supported or not.

- `QSqlDriver::Transactions` - whether the driver supports SQL transactions

  - `QSqlDriver::QuerySize` - whether the database is capable of reporting the size of a query. Note that some databases do not support returning the size (i.e. number of rows returned) of a query, in which case QSqlQuery::size() will return -1

  - `QSqlDriver::BLOB` - whether the driver supports Binary Large Object fields

  - `QSqlDriver::Unicode` - whether the driver supports Unicode strings if the database server does

  - `QSqlDriver::PreparedQueries` - whether the driver supports prepared query execution

  - `QSqlDriver::NamedPlaceholders` - whether the driver supports usage of named placeholders

  - `QSqlDriver::PositionalPlaceholders` - whether the driver supports usage of positional placeholders

  More information about supported features can be found in the Qt SQL driver documentation.

See also hasFeature().

## MEMBER FUNCTION DOCUMENTATION

## QSqlDriver::QSqlDriver ( QObject \* parent = 0, const char \* name = 0 )

Default constructor. Creates a new driver with parent *parent*, called *name*.

## QSqlDriver::~QSqlDriver ()

Destroys the object and frees any allocated resources.

## bool QSqlDriver::beginTransaction ()` [virtual]`

Protected function which derived classes can reimplement to begin a transaction. If successful, return TRUE, otherwise return FALSE. The default implementation returns FALSE.

See also commitTransaction() and rollbackTransaction().

## void QSqlDriver::close ()` [pure virtual]`

Derived classes must reimplement this abstract virtual function in order to close the database connection. Return TRUE on success, FALSE on failure.

See also setOpen().

## bool QSqlDriver::commitTransaction ()` [virtual]`

Protected function which derived classes can reimplement to commit a transaction. If successful, return TRUE, otherwise return FALSE. The default implementation returns FALSE.

See also beginTransaction() and rollbackTransaction().

## QSqlQuery QSqlDriver::createQuery () const` [pure virtual]`

Creates an empty SQL result on the database. Derived classes must reimplement this function and return a QSqlQuery object appropriate for their database to the caller.

## QString QSqlDriver::formatValue ( const QSqlField \* field, bool trimStrings = FALSE ) const` [virtual]`

Returns a string representation of the *field* value for the database. This is used, for example, when constructing INSERT and UPDATE statements.

The default implementation returns the value formatted as a string according to the following rules:

-

  - If *field* is NULL, nullText() is returned.

  -

  - If *field* is character data, the value is returned enclosed in single quotation marks, which is appropriate for many SQL databases. Any embedded single-quote characters are escaped (replaced with two single-quote characters). If *trimStrings* is TRUE (the default is FALSE), all trailing whitespace is trimmed from the field.

  -

  - If *field* is date/time data, the value is formatted in ISO format and enclosed in single quotation marks. If the date/time data is invalid, nullText() is returned.

  -

  - If *field* is bytearray data, and the driver can edit binary fields, the value is formatted as a hexadecimal string.

  -

  - For any other field type toString() will be called on its value and the result returned.

  -

  See also QVariant::toString().

## bool QSqlDriver::hasFeature ( DriverFeature f ) const` [pure virtual]`

Returns TRUE if the driver supports feature *f*; otherwise returns FALSE.

Note that some databases need to be open() before this can be determined.

See also DriverFeature.

## bool QSqlDriver::isOpen () const

Returns TRUE if the database connection is open; otherwise returns FALSE.

## bool QSqlDriver::isOpenError () const

Returns TRUE if the there was an error opening the database connection; otherwise returns FALSE.

## QSqlError QSqlDriver::lastError () const

Returns a QSqlError object which contains information about the last error that occurred on the database.

## QString QSqlDriver::nullText () const` [virtual]`

Returns a string representation of the NULL value for the database. This is used, for example, when constructing INSERT and UPDATE statements. The default implementation returns the string" NULL".

## bool QSqlDriver::open ( const QString & db, const QString & user = QString::null, const QString & password = QString::null, const QString & host = QString::null, int port = -1 )` [pure virtual]`

Derived classes must reimplement this abstract virtual function in order to open a database connection on database *db*, using user name *user*, password *password*, host *host* and port *port*.

The function *must* return TRUE on success and FALSE on failure.

See also setOpen().

## bool QSqlDriver::open ( const QString & db, const QString & user, const QString & password, const QString & host, int port, const QString & connOpts )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Open a database connection on database *db*, using user name *user*, password *password*, host *host*, port *port* and connection options *connOpts*.

Returns TRUE on success and FALSE on failure.

See also setOpen().

## QSqlIndex QSqlDriver::primaryIndex ( const QString & tableName ) const` [virtual]`

Returns the primary index for table *tableName*. Returns an empty QSqlIndex if the table doesn't have a primary index. The default implementation returns an empty index.

## QSqlRecord QSqlDriver::record ( const QString & tableName ) const` [virtual]`

Returns a QSqlRecord populated with the names of the fields in table *tableName*. If no such table exists, an empty record is returned. The default implementation returns an empty record.

## QSqlRecord QSqlDriver::record ( const QSqlQuery & query ) const` [virtual]`

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Returns a QSqlRecord populated with the names of the fields in the SQL *query*. The default implementation returns an empty record.

## QSqlRecordInfo QSqlDriver::recordInfo ( const QString & tablename ) const` [virtual]`

Returns a QSqlRecordInfo object with meta data about the table *tablename*.

## QSqlRecordInfo QSqlDriver::recordInfo ( const QSqlQuery & query ) const` [virtual]`

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Returns a QSqlRecordInfo object with meta data for the QSqlQuery *query*. Note that this overloaded function may return less information than the recordInfo() function which takes the name of a table as parameter.

## bool QSqlDriver::rollbackTransaction ()` [virtual]`

Protected function which derived classes can reimplement to rollback a transaction. If successful, return TRUE, otherwise return FALSE. The default implementation returns FALSE.

See also beginTransaction() and commitTransaction().

## void QSqlDriver::setLastError ( const QSqlError & e )` [virtual protected]`

Protected function which allows derived classes to set the value of the last error, *e*, that occurred on the database.

See also lastError().

## void QSqlDriver::setOpen ( bool o )` [virtual protected]`

Protected function which sets the open state of the database to *o*. Derived classes can use this function to report the status of open().

See also open() and setOpenError().

## void QSqlDriver::setOpenError ( bool e )` [virtual protected]`

Protected function which sets the open error state of the database to *e*. Derived classes can use this function to report the status of open(). Note that if *e* is TRUE the open state of the database is set to closed (i.e. isOpen() returns FALSE).

See also open().

## QStringList QSqlDriver::tables ( const QString & tableType ) const` [virtual]`

Returns a list of tables in the database. The default implementation returns an empty list.

The *tableType* argument describes what types of tables should be returned. Due to binary compatibility, the string contains the value of the enum QSql::TableTypes as text. An empty string should be treated as QSql::Tables for downward compatibility.

See also QSql::TableType.

## SEE ALSO

**http://doc.trolltech.com/qsqldriver.html** **http://www.trolltech.com/faq/tech.html**

## COPYRIGHT

Copyright 1992-2007 Trolltech ASA, http://www.trolltech.com.  See the license file included in the distribution for a complete license statement.

## AUTHOR

Generated automatically from the source code.

## BUGS

If you find a bug in Qt, please report it as described in **http://doc.trolltech.com/bughowto.html**. Good bug reports help us to help you. Thank you.

The definitive Qt documentation is provided in HTML format; it is located at $QTDIR/doc/html and can be read using Qt Assistant or with a web browser. This man page is provided as a convenience for those users who prefer man pages, although this format is not officially supported by Trolltech.

If you find errors in this manual page, please report them to **qt-bugs@trolltech.com**. Please include the name of the manual page (qsqldriver.3qt) and the Qt version (3.3.8).
