tntdb 1.1

tntdb::Connection Class Reference

This class holds a connection to a database. More...

#include <connection.h>

List of all members.

Public Types

typedef unsigned size_type

Public Member Functions

 Connection ()
 Instantiate a empty connection-object.
 Connection (IConnection *conn_)
 Initialize this class with a connection.
void close ()
 Remove the reference to the connected database.
void beginTransaction ()
 Starts a transaction.
void commitTransaction ()
 Commits the current transaction.
void rollbackTransaction ()
 Rolls back the current transaction.
size_type execute (const std::string &query)
 Executes a static query, without returning results.
Result select (const std::string &query)
 Executes a static query, which returns a result.
Row selectRow (const std::string &query)
 Executes a static query, which returns a result.
Value selectValue (const std::string &query)
 Executes a static query, which returns a result.
Statement prepare (const std::string &query)
 Creates a new Statement-object, with the given query.
Statement prepareCached (const std::string &query, const std::string &key)
 Like prepareCached but use the passed string as a cache key.
Statement prepareCached (const std::string &query)
 Creates a new Statement-object, with the given query and stores the statement in a cache.
void clearStatementCache ()
 Clears the cache, built with prepareCache.
bool ping ()
 returns true, if connection is alive.
long lastInsertId (const std::string &name)
 returns the last inserted insert id.
bool operator! () const
 Returns true, when there is no connection established.
const IConnection * getImpl () const
 Returns the actual implementation-class.

Detailed Description

This class holds a connection to a database.

Normally you will create a connection with tntdb::connect(url). The actual connection is referencecounted. You can copy this class as you need. When the last copy of it is destroyed, the connection is closed.

Example:

   try
   {
     tntdb::Connection conn = tntdb::connect("postgresql:dbname=mydatabase");
     tntdb::Result res = conn.select("select col1, col2 from mytable");
     for (tntdb::Result::const_iterator it = res.begin(); it != res.end(); ++it)
       std::cout << "col1=" << it->getString() << " col2=" << it->getInt() << std::endl;
   }
   catch (const std::exception& e)
   {
     std::cerr << e.what() << std::endl;
   }

Constructor & Destructor Documentation

tntdb::Connection::Connection ( ) [inline]

Instantiate a empty connection-object.

tntdb::Connection::Connection ( IConnection *  conn_) [inline]

Initialize this class with a connection.


Member Function Documentation

void tntdb::Connection::beginTransaction ( )

Starts a transaction.

Normally this is not needed. It is better to use the class tntdb::Transaction instead.

void tntdb::Connection::clearStatementCache ( ) [inline]

Clears the cache, built with prepareCache.

void tntdb::Connection::close ( ) [inline]

Remove the reference to the connected database.

If this was the last reference, the connection is actually closed.

void tntdb::Connection::commitTransaction ( )

Commits the current transaction.

size_type tntdb::Connection::execute ( const std::string &  query)

Executes a static query, without returning results.

The query is normally a INSERT-, UPDATE- or DELETE-statement. As with the other query-execution-methods this should be used only for static queries. When you need to pass parameters it is always better to use tntdb::Statement.

const IConnection* tntdb::Connection::getImpl ( ) const [inline]

Returns the actual implementation-class.

long tntdb::Connection::lastInsertId ( const std::string &  name) [inline]

returns the last inserted insert id.

bool tntdb::Connection::operator! ( ) const [inline]

Returns true, when there is no connection established.

bool tntdb::Connection::ping ( ) [inline]

returns true, if connection is alive.

Statement tntdb::Connection::prepare ( const std::string &  query)

Creates a new Statement-object, with the given query.

Statement tntdb::Connection::prepareCached ( const std::string &  query,
const std::string &  key 
)

Like prepareCached but use the passed string as a cache key.

Since queries are normally quite lengthy, they are not that fast as a lookup key. For better performance of the cache it is feasible to give a shorter key for the query. But it is the user, who is in charge to use unique keys.

Statement tntdb::Connection::prepareCached ( const std::string &  query) [inline]

Creates a new Statement-object, with the given query and stores the statement in a cache.

When called again with the same query, the cached result is returned.

void tntdb::Connection::rollbackTransaction ( )

Rolls back the current transaction.

Result tntdb::Connection::select ( const std::string &  query)

Executes a static query, which returns a result.

The query is normally a SELECT-statement.

Row tntdb::Connection::selectRow ( const std::string &  query)

Executes a static query, which returns a result.

The first row is returned. If the query does not return rows, the exception tntdb::NotFound is thrown.

Value tntdb::Connection::selectValue ( const std::string &  query)

Executes a static query, which returns a result.

The first value of the first row is returned. If the query does not return rows, the exception tntdb::NotFound is thrown.


The documentation for this class was generated from the following file: