Wt  3.3.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Groups Pages
Public Member Functions | List of all members
Wt::Dbo::backend::MySQL Class Reference

A MySQL connection. More...

#include <Wt/Dbo/backend/MySQL>

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

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 MySQLclone () 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 SqlStatementprepareStatement (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.
- Public Member Functions inherited from Wt::Dbo::SqlConnection
virtual ~SqlConnection ()
 Destructor.
virtual SqlStatementgetStatement (const std::string &id) const
 Returns the statement with the given id.
virtual void saveStatement (const std::string &id, SqlStatement *statement)
 Saves a statement with the given id.
void setProperty (const std::string &name, const std::string &value)
 Sets a property.
std::string property (const std::string &name) const
 Returns a property.
virtual void prepareForDropTables ()
 Execute code before dropping the tables.
virtual const char * textType () const
 Returns the text type.
virtual const char * booleanType () const
 Returns the boolean type.
virtual bool usesRowsFromTo () const
 Returns whether the SQL dialect uses 'ROWS ? TO ?' for partial select results.

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
dbThe database name.
dbuserThe username for the database connection - defaults to "root".
dbpasswdThe password for the database conection - defaults to an empty string.
dbhostThe hostname of the database - defaults to localhost.
fractionalSecondsPartMust 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
Mustbe 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.


Generated on Thu May 30 2013 for the C++ Web Toolkit (Wt) by doxygen 1.8.1.2