Wt  3.3.1
 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...
 
int getFractionalSecondsPart () const
 Returns the supported fractional seconds part. More...
 
void setFractionalSecondsPart (int fractionalSecondsPart)
 Set the supported fractional seconds part. More...
 
Methods that return dialect information
virtual std::string autoincrementSql () const
 Returns the 'autoincrement' SQL type modifier. More...
 
virtual std::string autoincrementType () const
 Returns the 'autoincrement' SQL type. More...
 
virtual std::string autoincrementInsertSuffix () const
 Returns the suffix for an 'autoincrement' insert statement. More...
 
virtual std::vector< std::string > autoincrementCreateSequenceSql (const std::string &table, const std::string &id) const
 Returns the SQL statement(s) required to create an id sequence. More...
 
virtual std::vector< std::string > autoincrementDropSequenceSql (const std::string &table, const std::string &id) const
 Returns the SQL statement(s) required to drop an id sequence. More...
 
virtual const char * dateTimeType (SqlDateTimeType type) const
 Returns the date/time type. More...
 
virtual const char * blobType () const
 Returns the blob type. More...
 
virtual bool supportAlterTable () const
 Returns true if the backend support Alter Table. More...
 
virtual const char * alterTableConstraintString () const
 Returns the command used in alter table .. drop constraint .. 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.
dbportThe portnumber - defaults to a default port.
dbsocketThe socket to use.
fractionalSecondsPartThe number of fractional units (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 command used in alter table .. drop constraint ..

This method will return "constraint" by default. Default: ALTER TABLE .. DROP CONSTRAINT ..

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 SQL statement(s) required to create an id sequence.

This is used by Session::createTables() to create the id sequence for a table. The table's name and primary key are passed as arguments to this function and can be used to construct an SQL sequence that is unique for the table.

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 SQL statement(s) required to drop an id sequence.

This is used by Session::dropTables() to drop the id sequence for a table. The table's name and primary key are passed as arguments to this function and can be used to construct an SQL sequence that is unique for the table.

Implements Wt::Dbo::SqlConnection.

std::string Wt::Dbo::backend::MySQL::autoincrementInsertSuffix ( ) const
virtual

Returns the suffix for an 'autoincrement' insert statement.

This is appended to the insert statement, since some back-ends need to be indicated that they should return the autoincrement id.

Implements Wt::Dbo::SqlConnection.

std::string Wt::Dbo::backend::MySQL::autoincrementSql ( ) const
virtual

Returns the 'autoincrement' SQL type modifier.

This is used by Session::createTables() to create the id column.

Implements Wt::Dbo::SqlConnection.

std::string Wt::Dbo::backend::MySQL::autoincrementType ( ) const
virtual

Returns the 'autoincrement' SQL type.

This is used by Session::createTables() to create the id column.

Implements Wt::Dbo::SqlConnection.

const char * Wt::Dbo::backend::MySQL::blobType ( ) const
virtual
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
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.

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

Returns the supported fractional seconds part.

By default return -1: fractional part is not stored. Fractional seconds part is 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.

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

Parameters
fractionalSecondsPartMust be in the range 0 to 6.
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 true if the backend support Alter Table.

This method will return false by default.

Reimplemented from Wt::Dbo::SqlConnection.


Generated on Wed Oct 16 2013 for the C++ Web Toolkit (Wt) by doxygen 1.8.4