Wt: Wt::Dbo::backend::MySQL Class Reference

Wt 3.3.0

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes

- Class List
- Class Hierarchy
- Class Members

Public Member Functions
Wt::Dbo::backend::MySQL Class Reference
Database Objects (Wt::Dbo)

A MySQL connection. More...

`#include <Wt/Dbo/backend/MySQL>`

Inheritance diagram for Wt::Dbo::backend::MySQL:
[legend]

List of all members.

## Public Member Functions
| MySQL (const std::string &db, const std::string &dbuser="root", const std::string &dbpasswd="", const std::string dbhost="localhost", unsigned int dbport=0, const std::string &dbsocket="/var/run/mysqld/mysqld.sock", int fractionalSecondsPart=-1)
| Opens a new MySQL backend connection.
| MySQL (const MySQL &other)
| Copies a MySQL connection.
| ~MySQL ()
| Destructor.
virtual MySQL * | clone () const
| Returns a copy of the connection.
bool | connect ()
| Tries to connect.
MySQL_impl * | connection ()
| Returns the underlying connection.
virtual void | executeSql (const std::string &sql)
| Executes an SQL statement.
virtual void | startTransaction ()
| Starts a transaction.
virtual void | commitTransaction ()
| Commits a transaction.
virtual void | rollbackTransaction ()
| Rolls back a transaction.
virtual SqlStatement * | prepareStatement (const std::string &sql)
| Prepares a statement.
Methods that return dialect information
virtual std::string | autoincrementSql () const
| Returns the supported fractional seconds part.
virtual std::string | autoincrementType () const
| Returns the supported fractional seconds part.
virtual std::string | autoincrementInsertSuffix () const
| Returns the supported fractional seconds part.
virtual std::vector< std::string > | autoincrementCreateSequenceSql (const std::string &table, const std::string &id) const
| Returns the supported fractional seconds part.
virtual std::vector< std::string > | autoincrementDropSequenceSql (const std::string &table, const std::string &id) const
| Returns the supported fractional seconds part.
virtual const char * | dateTimeType (SqlDateTimeType type) const
| Returns the supported fractional seconds part.
virtual const char * | blobType () const
| Returns the supported fractional seconds part.
virtual bool | supportAlterTable () const
| Returns the supported fractional seconds part.
virtual const char * | alterTableConstraintString () const
| Returns the supported fractional seconds part.
const int | getFractionalSecondsPart () const
| Returns the supported fractional seconds part.
void | setFractionalSecondsPart (int fractionalSecondsPart)
| Set the supported fractional seconds part.

## Detailed Description

A MySQL connection.

This class provides the backend implementation for mariadb databases. It has been tested against MySQL 5.6.

In order to work properly with Wt::Dbo, MySQL must be configured with InnoDB (for MySQL) or XtraDB (for mariadb) as the default database engine - so that the transaction based functionality works.

Note:
  There is a bug in the implementation of milliseconds in mariadb C client which affects WTime and posix::time_duration values -- it goes berserk when fractional part = 0.

## Constructor & Destructor Documentation

Wt::Dbo::backend::MySQL::MySQL | ( | const std::string & | db,
|  | const std::string & | dbuser = `"root"`,
|  | const std::string & | dbpasswd = `""`,
|  | const std::string | dbhost = `"localhost"`,
|  | unsigned int | dbport = `0`,
|  | const std::string & | dbsocket = `"/var/run/mysqld/mysqld.sock"`,
|  | int | fractionalSecondsPart = `-1`
| ) |  |

Opens a new MySQL backend connection.

Parameters:

  db | The database name.
  dbuser | The username for the database connection - defaults to "root".
  dbpasswd | The password for the database conection - defaults to an empty string.
  dbhost | The hostname of the database - defaults to localhost.
  fractionalSecondsPart | Must be in the range 0 to 6. A value of -1 indicates that the fractional part is not stored. Fractional seconds part are supported for MySQL 5.6.4 http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html

Wt::Dbo::backend::MySQL::MySQL | ( | const MySQL & | other | ) |

Copies a MySQL connection.

This creates a new connection with the same settings as another connection.

See also:
  clone()

Wt::Dbo::backend::MySQL::~MySQL | ( |  | ) |

Destructor.

Closes the connection.

## Member Function Documentation

const char * Wt::Dbo::backend::MySQL::alterTableConstraintString | ( |  | ) | const`[virtual]`

Returns the supported fractional seconds part.

By diffault return -1: fractional part are not stored. Fractional seconds part are supported for MySQL 5.6.4 http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html

See also:
  setFractionalSecondsPart()

Reimplemented from Wt::Dbo::SqlConnection.

std::vector< std::string > Wt::Dbo::backend::MySQL::autoincrementCreateSequenceSql | ( | const std::string & | table,
|  | const std::string & | id
| ) |  | const`[virtual]`

Returns the supported fractional seconds part.

By diffault return -1: fractional part are not stored. Fractional seconds part are supported for MySQL 5.6.4 http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html

See also:
  setFractionalSecondsPart()

Implements Wt::Dbo::SqlConnection.

std::vector< std::string > Wt::Dbo::backend::MySQL::autoincrementDropSequenceSql | ( | const std::string & | table,
|  | const std::string & | id
| ) |  | const`[virtual]`

Returns the supported fractional seconds part.

By diffault return -1: fractional part are not stored. Fractional seconds part are supported for MySQL 5.6.4 http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html

See also:
  setFractionalSecondsPart()

Implements Wt::Dbo::SqlConnection.

std::string Wt::Dbo::backend::MySQL::autoincrementInsertSuffix | ( |  | ) | const`[virtual]`

Returns the supported fractional seconds part.

By diffault return -1: fractional part are not stored. Fractional seconds part are supported for MySQL 5.6.4 http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html

See also:
  setFractionalSecondsPart()

Implements Wt::Dbo::SqlConnection.

std::string Wt::Dbo::backend::MySQL::autoincrementSql | ( |  | ) | const`[virtual]`

Returns the supported fractional seconds part.

By diffault return -1: fractional part are not stored. Fractional seconds part are supported for MySQL 5.6.4 http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html

See also:
  setFractionalSecondsPart()

Implements Wt::Dbo::SqlConnection.

std::string Wt::Dbo::backend::MySQL::autoincrementType | ( |  | ) | const`[virtual]`

Returns the supported fractional seconds part.

By diffault return -1: fractional part are not stored. Fractional seconds part are supported for MySQL 5.6.4 http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html

See also:
  setFractionalSecondsPart()

Implements Wt::Dbo::SqlConnection.

const char * Wt::Dbo::backend::MySQL::blobType | ( |  | ) | const`[virtual]`

Returns the supported fractional seconds part.

By diffault return -1: fractional part are not stored. Fractional seconds part are supported for MySQL 5.6.4 http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html

See also:
  setFractionalSecondsPart()

Implements Wt::Dbo::SqlConnection.

void Wt::Dbo::backend::MySQL::commitTransaction | ( |  | ) | `[virtual]`

Commits a transaction.

This function commits a transaction.

Implements Wt::Dbo::SqlConnection.

bool Wt::Dbo::backend::MySQL::connect | ( |  | ) |

Tries to connect.

Throws an exception if there was a problem, otherwise true.

const char * Wt::Dbo::backend::MySQL::dateTimeType | ( | SqlDateTimeType | type | ) | const`[virtual]`

Returns the supported fractional seconds part.

By diffault return -1: fractional part are not stored. Fractional seconds part are supported for MySQL 5.6.4 http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html

See also:
  setFractionalSecondsPart()

Implements Wt::Dbo::SqlConnection.

void Wt::Dbo::backend::MySQL::executeSql | ( | const std::string & | sql | ) | `[virtual]`

Executes an SQL statement.

This is a convenience method for preparing a statement, executing it, and deleting it.

Reimplemented from Wt::Dbo::SqlConnection.

const int Wt::Dbo::backend::MySQL::getFractionalSecondsPart | ( |  | ) | const

Returns the supported fractional seconds part.

By diffault return -1: fractional part are not stored. Fractional seconds part are supported for MySQL 5.6.4 http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html

See also:
  setFractionalSecondsPart()

SqlStatement * Wt::Dbo::backend::MySQL::prepareStatement | ( | const std::string & | sql | ) | `[virtual]`

Prepares a statement.

Returns the prepared statement.

Implements Wt::Dbo::SqlConnection.

void Wt::Dbo::backend::MySQL::rollbackTransaction | ( |  | ) | `[virtual]`

Rolls back a transaction.

This function rolls back a transaction.

Implements Wt::Dbo::SqlConnection.

void Wt::Dbo::backend::MySQL::setFractionalSecondsPart | ( | int | fractionalSecondsPart | ) |

Set the supported fractional seconds part.

Parameters:

  Must | be in the range 0 to 6. By diffault return -1: fractional part are not stored.

The fractional seconds part can be also set in the constructor Fractional seconds part are supported for MySQL 5.6.4 http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html

See also:
  setFractionalSecondsPart()

void Wt::Dbo::backend::MySQL::startTransaction | ( |  | ) | `[virtual]`

Starts a transaction.

This function starts a transaction.

Implements Wt::Dbo::SqlConnection.

bool Wt::Dbo::backend::MySQL::supportAlterTable | ( |  | ) | const`[virtual]`

Returns the supported fractional seconds part.

By diffault return -1: fractional part are not stored. Fractional seconds part are supported for MySQL 5.6.4 http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html

See also:
  setFractionalSecondsPart()

Reimplemented from Wt::Dbo::SqlConnection.

All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator