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. More...
 
 MySQL (const MySQL &other)
 Copies a MySQL connection. More...
 
 ~MySQL ()
 Destructor. More...
 
virtual MySQLclone () const
 Returns a copy of the connection.
 
bool connect ()
 Tries to connect. More...
 
MySQL_impl * connection ()
 Returns the underlying connection.
 
virtual void executeSql (const std::string &sql)
 Executes an SQL statement. More...
 
virtual void startTransaction ()
 Starts a transaction. More...
 
virtual void commitTransaction ()
 Commits a transaction. More...
 
virtual void rollbackTransaction ()
 Rolls back a transaction. More...
 
virtual SqlStatementprepareStatement (const std::string &sql)
 Prepares a statement. More...
 
Methods that return dialect information
virtual std::string autoincrementSql () const
 Returns the supported fractional seconds part. More...
 
virtual std::string autoincrementType () const
 Returns the supported fractional seconds part. More...
 
virtual std::string autoincrementInsertSuffix () const
 Returns the supported fractional seconds part. More...
 
virtual std::vector< std::string > autoincrementCreateSequenceSql (const std::string &table, const std::string &id) const
 Returns the supported fractional seconds part. More...
 
virtual std::vector< std::string > autoincrementDropSequenceSql (const std::string &table, const std::string &id) const
 Returns the supported fractional seconds part. More...
 
virtual const char * dateTimeType (SqlDateTimeType type) const
 Returns the supported fractional seconds part. More...
 
virtual const char * blobType () const
 Returns the supported fractional seconds part. More...
 
virtual bool supportAlterTable () const
 Returns the supported fractional seconds part. More...
 
virtual const char * alterTableConstraintString () const
 Returns the supported fractional seconds part. More...
 
const int getFractionalSecondsPart () const
 Returns the supported fractional seconds part. More...
 
void setFractionalSecondsPart (int fractionalSecondsPart)
 Set the supported fractional seconds part. More...
 
- 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. More...
 
virtual void saveStatement (const std::string &id, SqlStatement *statement)
 Saves a statement with the given id. More...
 
void setProperty (const std::string &name, const std::string &value)
 Sets a property. More...
 
std::string property (const std::string &name) const
 Returns a property. More...
 
virtual void prepareForDropTables ()
 Execute code before dropping the tables. More...
 
virtual const char * textType () const
 Returns the text type. More...
 
virtual const char * booleanType () const
 Returns the boolean type. More...
 
virtual bool usesRowsFromTo () const
 Returns whether the SQL dialect uses 'ROWS ? TO ?' for partial select results. More...
 

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 Fri May 31 2013 for the C++ Web Toolkit (Wt) by doxygen 1.8.3.1