Diff for /parser3/src/sql/pa_sql_driver.h between versions 1.28 and 1.32

version 1.28, 2002/08/01 11:41:20 version 1.32, 2002/12/09 12:19:16
Line 30  static const char* IDENT_SQL_DRIVER_H="$ Line 30  static const char* IDENT_SQL_DRIVER_H="$
   
 #include <sys/types.h>  #include <sys/types.h>
   
   #define SQL_DRIVER_API_VERSION 0x0005
   #define SQL_DRIVER_CREATE create /* used in driver implementation */
   #define SQL_DRIVER_CREATE_NAME "create" /* could not figure out how to # it :( */
   
   /// fields are freed elsewhere
   class SQL_Error {
           bool fdefined;
           const char *ftype;
           const void *fproblem_source;
           const char *fcomment;
   public:
           SQL_Error():
                   fdefined(false) {}
           SQL_Error(
                   const char *atype,
                   const void *aproblem_source, 
                   const char *acomment):
                   fdefined(true),
                   ftype(atype),
                   fproblem_source(aproblem_source),
                   fcomment(acomment) {}
           SQL_Error(const char *acomment):
                   fdefined(true),
                   ftype(0),
                   fproblem_source(0),
                   fcomment(acomment) {}
           SQL_Error& operator =(const SQL_Error& src) {
                   fdefined=src.fdefined;
                   ftype=src.ftype;
                   fproblem_source=src.fproblem_source;
                   fcomment=src.fcomment;
                   return *this;
           }
   
           bool defined() const { return fdefined; }
           const char *type() const { return ftype; }
           const void *problem_source() const { return fproblem_source; }
           const char *comment() const { return fcomment; }
   };
   
 /// service functions for SQL driver to use  /// service functions for SQL driver to use
 class SQL_Driver_services {  class SQL_Driver_services {
 public:  public:
Line 38  public: Line 78  public:
         /// allocates some bytes clearing them with zeros          /// allocates some bytes clearing them with zeros
         virtual void *calloc(size_t size) =0;          virtual void *calloc(size_t size) =0;
         /// prepare throw exception          /// prepare throw exception
         virtual void _throw(const char *comment) =0;          virtual void _throw(const SQL_Error& e) =0;
         /// throw C++ exception from prepared          /// throw C++ exception from prepared
         virtual void propagate_exception() =0;          virtual void propagate_exception() =0;
           /// helper func
           void _throw(const char *comment) { _throw(SQL_Error(0, 0, comment)); }
 public:  public:
         /// regretrully public, because can't make stack frames: "nowhere to return to"          /// regretrully public, because can't make stack frames: "nowhere to return to"
         jmp_buf mark;          jmp_buf mark;
 };  };
   
 #define SQL_DRIVER_API_VERSION 0x0003  /** events, occuring when SQL_Driver::query()-ing. 
 #define SQL_DRIVER_CREATE create /* used in driver implementation */  
 #define SQL_DRIVER_CREATE_NAME "create" /* could not figure out how to # it :( */  
   
 /// events, occuring when SQL_Driver::query()-ing                  when OK must return false.
                   must NOT throw exceptions, must store them to error & return true.
   */
 class SQL_Driver_query_event_handlers {  class SQL_Driver_query_event_handlers {
 public:  public:
         virtual void add_column(void *ptr, size_t size) =0;          virtual bool add_column(SQL_Error& error, void *ptr, size_t size) =0;
         virtual void before_rows() =0;          virtual bool before_rows(SQL_Error& error) =0;
         virtual void add_row() =0;          virtual bool add_row(SQL_Error& error) =0;
         virtual void add_row_cell(void *ptr, size_t size) =0;          virtual bool add_row_cell(SQL_Error& error, void *ptr, size_t size) =0;
 };  };
   
 /// SQL driver API  /// SQL driver API

Removed from v.1.28  
changed lines
  Added in v.1.32


E-mail: