Wt  3.3.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator
Public Member Functions
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]

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 MySQLclone () const
 Returns a copy of the connection.
bool connect (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")
 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.
int getFractionalSecondsPart () const
 Returns the supported fractional seconds part.
void setFractionalSecondsPart (int fractionalSecondsPart)
 Set the supported fractional seconds part.
Methods that return dialect information
virtual std::string autoincrementSql () const
 Returns the 'autoincrement' SQL type modifier.
virtual std::string autoincrementType () const
 Returns the 'autoincrement' SQL type.
virtual std::string autoincrementInsertSuffix (const std::string &id) const
 Returns the suffix for an 'autoincrement' insert statement.
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.
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.
virtual const char * dateTimeType (SqlDateTimeType type) const
 Returns the date/time type.
virtual const char * blobType () const
 Returns the blob type.
virtual bool supportAlterTable () const
 Returns true if the backend support Alter Table.
virtual const char * alterTableConstraintString () const
 Returns the command used in alter table .. drop constraint ..
virtual bool requireSubqueryAlias () const
 Returns the true if the database require subquery alias.

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.

For the connection parameter description, please refer to the connect() method.

Parameters:
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

Copies a MySQL connection.

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

See also:
clone()

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 std::string &  id) 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]

Commits a transaction.

This function commits a transaction.

Implements Wt::Dbo::SqlConnection.

bool Wt::Dbo::backend::MySQL::connect ( 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" 
)

Tries to connect.

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.

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.

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.

virtual bool Wt::Dbo::backend::MySQL::requireSubqueryAlias ( ) const [virtual]

Returns the true if the database require subquery alias.

This method will return false by default.

Reimplemented from Wt::Dbo::SqlConnection.

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()

Starts a transaction.

This function starts a transaction.

Implements Wt::Dbo::SqlConnection.

Returns true if the backend support Alter Table.

This method will return false by default.

Reimplemented from Wt::Dbo::SqlConnection.

 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator

Generated on Tue Mar 22 2016 for the C++ Web Toolkit (Wt) by doxygen 1.7.6.1