Открытые члены | Закрытые члены | Закрытые данные

Класс nitro::PGDatabase

Класс для работы с PostgreSQL. Подробнее...

#include <db/pg_database.h>

Базовые классы:nitro::Database.

Граф связей класса nitro::PGDatabase:
Collaboration graph
[см. легенду]

Полный список членов класса

Открытые члены

 PGDatabase (void)
 PGDatabase (const std::string &theConnectionString)
void Connect (const std::string &theConnectionString)
void Disconnect (void)
void Query (const std::string &theQueryString)
virtual std::size_t RecordCount (void)
virtual std::size_t FieldCount (void)
virtual const char * GetRecordField (std::size_t i, std::size_t j)
virtual const char * GetFieldName (std::size_t j)
virtual void ClearResult (void)
virtual ~PGDatabase ()

Закрытые члены

 PGDatabase (const PGDatabase &DBObject)
PGDatabase operator= (const PGDatabase &DBObject)

Закрытые данные

void * Connection
void * Result

Подробное описание

Класс для работы с PostgreSQL.

Автор:
Додонов А.А.

См. определение в файле pg_database.h строка 50


Конструктор(ы)

nitro::PGDatabase::PGDatabase ( void   ) 

Конструктор.

Исключения:
nitro::exception Кидает исключение с описанием ошибки.
Автор:
Додонов А.А.

См. определение в файле pg_database.cpp строка 13

Перекрестные ссылки nitro::exception::code() и nitro::exception::what().

        {
                try
                {
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "PGDatabase::PGDatabase( void )::" ) + e.what() , e.code() ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "PGDatabase::PGDatabase( void )::An error occured" ) , 0 ) );
                }
        }

Граф вызовов:

nitro::PGDatabase::PGDatabase ( const std::string &  theConnectionString  ) 

Конструктор.

Аргументы:
theConnectionString - Параметры подключения.
Исключения:
nitro::exception Кидает исключение с описанием ошибки.
Автор:
Додонов А.А.

См. определение в файле pg_database.cpp строка 28

Перекрестные ссылки nitro::exception::code(), Connect() и nitro::exception::what().

        {
                try
                {
                        Connect( theConnectionString );
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "PGDatabase::PGDatabase( const std::string & theConnectionString )::" ) + e.what() , e.code() ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "PGDatabase::PGDatabase( const std::string & theConnectionString )::An error occured" ) , 0 ) );
                }
        }

Граф вызовов:

nitro::PGDatabase::~PGDatabase (  )  [virtual]

Деструктор.

Автор:
Додонов А.А.

См. определение в файле pg_database.cpp строка 111

Перекрестные ссылки Disconnect().

        {
                try
                {
                        Disconnect();
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "PGDatabase::~PGDatabase()::An error occured" ) , 0 ) );
                }
        }

Граф вызовов:

nitro::PGDatabase::PGDatabase ( const PGDatabase DBObject  )  [inline, private]

Закрытый конструктор копирования.

Аргументы:
DBObject - объект базы данных.
Автор:
Додонов А.А.

См. определение в файле pg_database.h строка 282

{}


Методы

void nitro::PGDatabase::ClearResult ( void   )  [virtual]

Функция очистки результата.

Исключения:
nitro::exception Кидает исключение с описанием ошибки.
Автор:
Додонов А.А.

Замещает nitro::Database.

См. определение в файле pg_database.cpp строка 187

Перекрестные ссылки nitro::exception::code(), Result и nitro::exception::what().

        {
                try
                {
                        if( Result != NULL )
                        {
                                PQclear( ( PGresult * )Result );
                                Result = NULL;
                        }
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "PGDatabase::ClearResult( void )::" ) + e.what() , e.code() ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "PGDatabase::ClearResult( void )::An error occured" ) , 0 ) );
                }
        }

Граф вызовов:

void nitro::PGDatabase::Connect ( const std::string &  theConnectionString  )  [virtual]

Подключение к базе данных.

Аргументы:
theConnectionString - Параметры подключения.
Исключения:
nitro::exception Кидает исключение с описанием ошибки.
Автор:
Додонов А.А.

Переопределяет метод предка nitro::Database.

См. определение в файле pg_database.cpp строка 44

Перекрестные ссылки nitro::exception::code(), Connection, nitro::Parsers::GetCommandLineParameter(), Query() и nitro::exception::what().

Используется в PGDatabase().

        {
                try
                {
                        Connection = ( void * )PQconnectdb( theConnectionString.c_str() );
                        
                        if( PQstatus( ( PGconn * )Connection ) != CONNECTION_OK )
                        {
                                throw( nitro::exception( std::string( "An error occured while connecting to the server. Connection string : " ) + theConnectionString , 1 ) );
                        }
                        
                        std::string             CharacterSet( nitro::Parsers::GetCommandLineParameter( theConnectionString , std::string( "character_set" ) , std::string( "" ) ) );
                        
                        if( !CharacterSet.empty() )
                        {
                                Query( std::string( "SET NAMES " ) + CharacterSet );
                        }
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "PGDatabase::Connect( const std::string & theConnectionString )::" ) + e.what() , e.code() ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "PGDatabase::Connect( const std::string & theConnectionString )::An error occured" ) , 0 ) );
                }
        }

Граф вызовов:

void nitro::PGDatabase::Disconnect ( void   )  [virtual]

Отключение от базы данных.

Исключения:
nitro::exception Кидает исключение с описанием ошибки.
Автор:
Додонов А.А.

Замещает nitro::Database.

См. определение в файле pg_database.cpp строка 95

Перекрестные ссылки nitro::exception::code(), Connection и nitro::exception::what().

Используется в ~PGDatabase().

        {
                try
                {
                        PQfinish( ( PGconn * )Connection );
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "PGDatabase::Disconnect( void )::" ) + e.what() , e.code() ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "PGDatabase::Disconnect( void )::An error occured" ) , 0 ) );
                }
        }

Граф вызовов:

std::size_t nitro::PGDatabase::FieldCount ( void   )  [virtual]

Функция получения количества полей.

Возвращает:
Количество полей.
Исключения:
nitro::exception Кидает исключение с описанием ошибки.
Автор:
Додонов А.А.

Замещает nitro::Database.

См. определение в файле pg_database.cpp строка 139

Перекрестные ссылки nitro::exception::code(), Result и nitro::exception::what().

        {
                try
                {
                        return( PQnfields( ( const PGresult * ) Result ) );
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "PGDatabase::FieldCount( void )::" ) + e.what() , e.code() ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "PGDatabase::FieldCount( void )::An error occured" ) , 0 ) );
                }
        }

Граф вызовов:

const char * nitro::PGDatabase::GetFieldName ( std::size_t  j  )  [virtual]

Функция получения названия поля.

Аргументы:
j - номер поля.
Возвращает:
Название поля.
Исключения:
nitro::exception Кидает исключение с описанием ошибки.
Автор:
Додонов А.А.

Замещает nitro::Database.

См. определение в файле pg_database.cpp строка 171

Перекрестные ссылки nitro::exception::code(), Result и nitro::exception::what().

        {
                try
                {
                        return( ( const char * )PQfname( ( const PGresult * ) Result , ( int )j ) );
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "PGDatabase::GetFieldName( std::size_t j )::" ) + e.what() , e.code() ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "PGDatabase::GetFieldName( std::size_t j )::An error occured" ) , 0 ) );
                }
        }

Граф вызовов:

const char * nitro::PGDatabase::GetRecordField ( std::size_t  i,
std::size_t  j 
) [virtual]

Функция получения значения поля.

Аргументы:
i - номер записи.
j - номер поля.
Возвращает:
Значение поля.
Исключения:
nitro::exception Кидает исключение с описанием ошибки.
Автор:
Додонов А.А.

Замещает nitro::Database.

См. определение в файле pg_database.cpp строка 155

Перекрестные ссылки nitro::exception::code(), Result и nitro::exception::what().

        {
                try
                {
                        return( ( const char * )PQgetvalue( ( const PGresult * ) Result , ( int )i , ( int )j ) );
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "PGDatabase::GetRecordField( std::size_t i , std::size_t j )::" ) + e.what() , e.code() ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "PGDatabase::GetRecordField( std::size_t i , std::size_t j )::An error occured" ) , 0 ) );
                }
        }

Граф вызовов:

PGDatabase nitro::PGDatabase::operator= ( const PGDatabase DBObject  )  [inline, private]

Закрытый оператор присваивания.

Аргументы:
DBObject - объект базы данных.
Автор:
Додонов А.А.

См. определение в файле pg_database.h строка 298

{return( *this );}

void nitro::PGDatabase::Query ( const std::string &  theQueryString  )  [virtual]

Выполнение запроса.

Аргументы:
theQueryString - Запрос.
Исключения:
nitro::exception Кидает исключение с описанием ошибки.
Автор:
Додонов А.А.

Переопределяет метод предка nitro::Database.

См. определение в файле pg_database.cpp строка 72

Перекрестные ссылки nitro::exception::code(), Connection, Result и nitro::exception::what().

Используется в Connect().

        {
                try
                {
                        Result = ( void * )PQexec( ( PGconn * )Connection , theQueryString.c_str() );

                        ExecStatusType          Status( PQresultStatus( ( PGresult * )Result ) );

                        if( Status == PGRES_BAD_RESPONSE || Status == PGRES_NONFATAL_ERROR || Status == PGRES_FATAL_ERROR )
                        {
                                throw( nitro::exception( std::string( "An error occured while executing query " ) + theQueryString , 1 ) );
                        }
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "PGDatabase::Query( const std::string & theQueryString )::" ) + e.what() , e.code() ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "PGDatabase::Query( const std::string & theQueryString )::An error occured" ) , 0 ) );
                }
        }

Граф вызовов:

std::size_t nitro::PGDatabase::RecordCount ( void   )  [virtual]

Функция получения количества записей.

Возвращает:
Количество записей.
Исключения:
nitro::exception Кидает исключение с описанием ошибки.
Автор:
Додонов А.А.

Замещает nitro::Database.

См. определение в файле pg_database.cpp строка 123

Перекрестные ссылки nitro::exception::code(), Result и nitro::exception::what().

        {
                try
                {
                        return( PQntuples( ( const PGresult * ) Result ) );
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "PGDatabase::RecordCount( void )::" ) + e.what() , e.code() ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "PGDatabase::RecordCount( void )::An error occured" ) , 0 ) );
                }
        }

Граф вызовов:


Данные класса

Соединение.

Автор:
Додонов А.А.

См. определение в файле pg_database.h строка 310

Используется в Connect(), Disconnect() и Query().

void* nitro::PGDatabase::Result [private]

Результат запроса.

Автор:
Додонов А.А.

См. определение в файле pg_database.h строка 322

Используется в ClearResult(), FieldCount(), GetFieldName(), GetRecordField(), Query() и RecordCount().


Объявления и описания членов классов находятся в файлах:

Generated by  doxygen 1.6.1