Wt  3.7.1
Public Member Functions | List of all members
Wt::Dbo::SqlConnection Class Referenceabstract

Abstract base class for an SQL connection. More...

#include <Wt/Dbo/SqlConnection>

Inheritance diagram for Wt::Dbo::SqlConnection:
Inheritance graph
[legend]

Public Member Functions

virtual ~SqlConnection ()
 Destructor.
 
virtual SqlConnectionclone () const =0
 Clones the connection. More...
 
virtual void executeSql (const std::string &sql)
 Executes an SQL statement. More...
 
virtual void executeSqlStateful (const std::string &sql)
 Executes a connection-stateful SQL statement. More...
 
virtual void startTransaction ()=0
 Starts a transaction. More...
 
virtual void commitTransaction ()=0
 Commits a transaction. More...
 
virtual void rollbackTransaction ()=0
 Rolls back a transaction. More...
 
virtual SqlStatementgetStatement (const std::string &id)
 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...
 
virtual SqlStatementprepareStatement (const std::string &sql)=0
 Prepares a statement. 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...
 
Methods that return dialect information
virtual std::string autoincrementSql () const =0
 Returns the 'autoincrement' SQL type modifier. More...
 
virtual std::vector< std::string > autoincrementCreateSequenceSql (const std::string &table, const std::string &id) const =0
 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 =0
 Returns the SQL statement(s) required to drop an id sequence. More...
 
virtual std::string autoincrementType () const =0
 Returns the 'autoincrement' SQL type. More...
 
virtual std::string autoincrementInsertInfix (const std::string &id) const
 Returns the infix for an 'autoincrement' insert statement. More...
 
virtual std::string autoincrementInsertSuffix (const std::string &id) const =0
 Returns the suffix for an 'autoincrement' insert statement. More...
 
virtual void prepareForDropTables ()
 Execute code before dropping the tables. More...
 
virtual const char * dateTimeType (SqlDateTimeType type) const =0
 Returns the date/time type. More...
 
virtual const char * blobType () const =0
 Returns the blob type. More...
 
virtual std::string textType (int size) const
 Returns the text type. More...
 
virtual std::string longLongType () const
 Returns the 64-bit integer type. More...
 
virtual const char * booleanType () const
 Returns the boolean type. More...
 
virtual bool supportUpdateCascade () const
 Returns true if the database supports Update Cascade. More...
 
virtual bool requireSubqueryAlias () const
 Returns the true if the database require subquery alias. More...
 
virtual LimitQuery limitQueryMethod () const
 
virtual bool usesRowsFromTo () const
 Returns whether the SQL dialect uses 'ROWS ? TO ?', limit or rownum for partial select results. More...
 
virtual bool supportAlterTable () const
 Returns true if the backend support Alter Table. More...
 
virtual bool supportDeferrableFKConstraint () const
 Returns true if the backend supports "deferrable initially deferred" foreign key constraints. More...
 
virtual const char * alterTableConstraintString () const
 Returns the command used in alter table .. drop constraint .. More...
 

Detailed Description

Abstract base class for an SQL connection.

An sql connection manages a single connection to a database. It also manages a map of previously prepared statements indexed by id's.

This class is part of Wt::Dbo's backend API, and should not be used directly.

All methods will throw an exception if they could not be completed.

Member Function Documentation

◆ alterTableConstraintString()

const char * Wt::Dbo::SqlConnection::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 in Wt::Dbo::backend::MySQL.

◆ autoincrementCreateSequenceSql()

virtual std::vector<std::string> Wt::Dbo::SqlConnection::autoincrementCreateSequenceSql ( const std::string &  table,
const std::string &  id 
) const
pure 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.

Implemented in Wt::Dbo::backend::Postgres, Wt::Dbo::backend::Sqlite3, Wt::Dbo::backend::MySQL, Wt::Dbo::backend::Firebird, and Wt::Dbo::backend::MSSQLServer.

◆ autoincrementDropSequenceSql()

virtual std::vector<std::string> Wt::Dbo::SqlConnection::autoincrementDropSequenceSql ( const std::string &  table,
const std::string &  id 
) const
pure 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.

Implemented in Wt::Dbo::backend::Postgres, Wt::Dbo::backend::Sqlite3, Wt::Dbo::backend::MySQL, Wt::Dbo::backend::Firebird, and Wt::Dbo::backend::MSSQLServer.

◆ autoincrementInsertInfix()

std::string Wt::Dbo::SqlConnection::autoincrementInsertInfix ( const std::string &  id) const
virtual

Returns the infix for an 'autoincrement' insert statement.

This is inserted before the values part of the insert statement, since Microsoft SQL Server requires that the autoincrement id is returned with OUTPUT.

Returns an empty string by default.

Reimplemented in Wt::Dbo::backend::MSSQLServer.

◆ autoincrementInsertSuffix()

virtual std::string Wt::Dbo::SqlConnection::autoincrementInsertSuffix ( const std::string &  id) const
pure 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.

Implemented in Wt::Dbo::backend::Postgres, Wt::Dbo::backend::Sqlite3, Wt::Dbo::backend::MySQL, Wt::Dbo::backend::Firebird, and Wt::Dbo::backend::MSSQLServer.

◆ autoincrementSql()

virtual std::string Wt::Dbo::SqlConnection::autoincrementSql ( ) const
pure virtual

Returns the 'autoincrement' SQL type modifier.

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

Implemented in Wt::Dbo::backend::Postgres, Wt::Dbo::backend::Sqlite3, Wt::Dbo::backend::MySQL, Wt::Dbo::backend::Firebird, and Wt::Dbo::backend::MSSQLServer.

◆ autoincrementType()

virtual std::string Wt::Dbo::SqlConnection::autoincrementType ( ) const
pure virtual

Returns the 'autoincrement' SQL type.

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

Implemented in Wt::Dbo::backend::Postgres, Wt::Dbo::backend::Sqlite3, Wt::Dbo::backend::MySQL, Wt::Dbo::backend::Firebird, and Wt::Dbo::backend::MSSQLServer.

◆ blobType()

virtual const char* Wt::Dbo::SqlConnection::blobType ( ) const
pure virtual

◆ booleanType()

const char * Wt::Dbo::SqlConnection::booleanType ( ) const
virtual

Returns the boolean type.

This method will return "boolean" by default.

Reimplemented in Wt::Dbo::backend::Firebird, and Wt::Dbo::backend::MSSQLServer.

◆ clone()

virtual SqlConnection* Wt::Dbo::SqlConnection::clone ( ) const
pure virtual

Clones the connection.

Returns a new connection object that is configured like this object. This is used by connection pool implementations to create its connections.

Implemented in Wt::Dbo::backend::Firebird, Wt::Dbo::backend::Sqlite3, Wt::Dbo::backend::MySQL, Wt::Dbo::backend::Postgres, and Wt::Dbo::backend::MSSQLServer.

◆ commitTransaction()

virtual void Wt::Dbo::SqlConnection::commitTransaction ( )
pure virtual

Commits a transaction.

This function commits a transaction.

Implemented in Wt::Dbo::backend::Postgres, Wt::Dbo::backend::Sqlite3, Wt::Dbo::backend::MySQL, Wt::Dbo::backend::Firebird, and Wt::Dbo::backend::MSSQLServer.

◆ dateTimeType()

virtual const char* Wt::Dbo::SqlConnection::dateTimeType ( SqlDateTimeType  type) const
pure virtual

◆ executeSql()

void Wt::Dbo::SqlConnection::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 in Wt::Dbo::backend::Postgres, Wt::Dbo::backend::MySQL, and Wt::Dbo::backend::MSSQLServer.

◆ executeSqlStateful()

void Wt::Dbo::SqlConnection::executeSqlStateful ( const std::string &  sql)
virtual

Executes a connection-stateful SQL statement.

This executes a statement, but also remembers the statement for when the native connection would be closed and reopened during the lifetime of this connection object. Then the statements are redone on the newly opened connection.

Such statements could be for example 'LISTEN' in a postgresql connection.

Note
These statements are only executed upon a reconnect for those backends that support automatic reconnect, but not when a connection is cloned.

◆ getStatement()

SqlStatement * Wt::Dbo::SqlConnection::getStatement ( const std::string &  id)
virtual

Returns the statement with the given id.

Returns 0 if no such statement was already added.

Note
This will create a copy of the prepared statement if all instances are in use.
See also
saveStatement()

◆ longLongType()

std::string Wt::Dbo::SqlConnection::longLongType ( ) const
virtual

Returns the 64-bit integer type.

This method will return "bigint" by default.

◆ prepareForDropTables()

void Wt::Dbo::SqlConnection::prepareForDropTables ( )
virtual

Execute code before dropping the tables.

This method is called before calling Session::dropTables(). The default implementation is empty.

Reimplemented in Wt::Dbo::backend::Firebird.

◆ prepareStatement()

virtual SqlStatement* Wt::Dbo::SqlConnection::prepareStatement ( const std::string &  sql)
pure virtual

◆ property()

std::string Wt::Dbo::SqlConnection::property ( const std::string &  name) const

Returns a property.

Returns the property value, or an empty string if the property was not set.

See also
setProperty()

◆ requireSubqueryAlias()

bool Wt::Dbo::SqlConnection::requireSubqueryAlias ( ) const
virtual

Returns the true if the database require subquery alias.

This method will return false by default.

Reimplemented in Wt::Dbo::backend::Postgres, Wt::Dbo::backend::MySQL, and Wt::Dbo::backend::MSSQLServer.

◆ rollbackTransaction()

virtual void Wt::Dbo::SqlConnection::rollbackTransaction ( )
pure virtual

Rolls back a transaction.

This function rolls back a transaction.

Implemented in Wt::Dbo::backend::Postgres, Wt::Dbo::backend::Sqlite3, Wt::Dbo::backend::MySQL, Wt::Dbo::backend::Firebird, and Wt::Dbo::backend::MSSQLServer.

◆ saveStatement()

void Wt::Dbo::SqlConnection::saveStatement ( const std::string &  id,
SqlStatement statement 
)
virtual

Saves a statement with the given id.

Saves the statement for future reuse using getStatement()

◆ setProperty()

void Wt::Dbo::SqlConnection::setProperty ( const std::string &  name,
const std::string &  value 
)

Sets a property.

Properties may tailor the backend behavior. Some properties are applicable to all backends, while some are backend specific.

General properties are:

  • show-queries: when value is "true", queries are shown as they are executed.

◆ startTransaction()

virtual void Wt::Dbo::SqlConnection::startTransaction ( )
pure virtual

Starts a transaction.

This function starts a transaction.

Implemented in Wt::Dbo::backend::Postgres, Wt::Dbo::backend::Sqlite3, Wt::Dbo::backend::MySQL, Wt::Dbo::backend::Firebird, and Wt::Dbo::backend::MSSQLServer.

◆ supportAlterTable()

bool Wt::Dbo::SqlConnection::supportAlterTable ( ) const
virtual

Returns true if the backend support Alter Table.

This method will return false by default.

Reimplemented in Wt::Dbo::backend::Postgres, Wt::Dbo::backend::MySQL, Wt::Dbo::backend::Firebird, and Wt::Dbo::backend::MSSQLServer.

◆ supportDeferrableFKConstraint()

bool Wt::Dbo::SqlConnection::supportDeferrableFKConstraint ( ) const
virtual

Returns true if the backend supports "deferrable initially deferred" foreign key constraints.

This method will return false by default.

Reimplemented in Wt::Dbo::backend::Postgres, and Wt::Dbo::backend::Sqlite3.

◆ supportUpdateCascade()

bool Wt::Dbo::SqlConnection::supportUpdateCascade ( ) const
virtual

Returns true if the database supports Update Cascade.

This method will return true by default. Was created for the oracle database which does not support Update Cascade.

◆ textType()

std::string Wt::Dbo::SqlConnection::textType ( int  size) const
virtual

Returns the text type.

This is the text type for a string. If size = -1, then a type should be returned which does not require size information, otherwise a type should be returned that limits the size of the stored string to size.

This method will return "text" by default if size = -1, and "varchar(size)" otherwise.

See also
SqlStatement::bind(int column, const std::string& value)

Reimplemented in Wt::Dbo::backend::Firebird, and Wt::Dbo::backend::MSSQLServer.

◆ usesRowsFromTo()

bool Wt::Dbo::SqlConnection::usesRowsFromTo ( ) const
virtual

Returns whether the SQL dialect uses 'ROWS ? TO ?', limit or rownum for partial select results.

This is an alternative SQL dialect option to the (non-standard) 'OFFSET ? LIMIT ?' syntax.

The default implementation returns Limit.

Reimplemented in Wt::Dbo::backend::Firebird.


Generated on Tue Dec 15 2020 for the C++ Web Toolkit (Wt) by doxygen 1.8.13