/* libzzdb
 *
 * This program is distributed under the GNU General Public License, version 2.
 * A copy of this license is included with this source.
 *
 * Copyright 2000-2006, Toni Thomsson <toni@tonjac.org> 
*/


#ifndef zz_db_exception_h
#define zz_db_exception_h

#include <zz_log_exception.h>
#include <zz_errors.h>

#include <otl.h>

#include <zz_db.h>

/**
    Database exception
    @author Toni Thomsson, toni@tonjac.org
*/
class ZZ_API CzzDbException: public CzzLogException
{
public:

    
    CzzDbException(const int row 
               , const char* file
               , const CzzString descr);

    
    CzzDbException(const int row
               , const char* file
               , const CzzString descr
               , otl_exception& e);


    
    CzzDbException(const int row
               , const char* file
               , const CzzString descr
               , CzzDb& db);

    
    CzzDbException(const int row
               , const char* file
               , const CzzString descr
               , CzzSQLStream& s);


    ~CzzDbException();


    /** Do not use, only for internal use! */
    static otl_exception   m_LastExtException;

protected:


    void Init(const int row
          , const char* file
          , const CzzString descr
          , const char* ora_msg
          , const char* ora_stm);
};

#endif