home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / DBObject.hxx < prev    next >
Text File  |  1996-05-31  |  2KB  |  92 lines

  1. /*---------------------------------------------------------------------------
  2.  *
  3.  *      (c)     Westmount Technology    1994
  4.  *
  5.  *      File:        @(#)DBObject.hxx    1.6
  6.  *      Author:        frmo
  7.  *      Description:    Base Class for all Database Classes
  8.  *            uses RogueWave class library
  9.  *---------------------------------------------------------------------------
  10.  SccsId = @(#)DBObject.hxx    1.6 06 Feb 1996 Copyright 1994 Westmount Technology */
  11.  
  12. #ifndef DBOBJECT_HXX
  13. #define DBOBJECT_HXX
  14.  
  15. #ifndef __RWCSTRING_H__
  16. #include "rw/cstring.h"
  17. #endif
  18.  
  19. class DBObject {
  20. public:
  21.     enum State {
  22.         CREATED,    // just created
  23.         TYPE_ERROR,    // constructed with unkown type
  24.         NORMAL,        // everything OK
  25.         SQL_ERROR    // SQL error occured
  26.     };
  27.  
  28.     DBObject(const RWCString &className);
  29.     virtual ~DBObject();
  30.  
  31.     // Connect database
  32.     //
  33.     static int        connectDB(const char *dbName);
  34.  
  35.     // Start database actions
  36.     //
  37.     static int        beginWork();
  38.  
  39.     // Commit the previous database actions
  40.     //
  41.     static int        commit();
  42.  
  43.     // Roll back the previous actions
  44.     //
  45.     static int        rollback();
  46.  
  47.     // Return class name
  48.     //
  49.     const char *        getClassName();
  50.  
  51.     // The state this object is in
  52.     //
  53.     State            getState();
  54.  
  55.         // Reset the state of the object to CREATED.
  56.         //
  57.         void            resetState();
  58.  
  59.     // Process the SQL status (sqlca.sql_code). Set the state
  60.     // accordingly. Returns -1 if the sql status indicates an error,
  61.     // else 0.
  62.     //
  63.     int            processSqlStatus();
  64.  
  65.         // Returns 1 if the sqlca.sql_code indicated that no rows
  66.         // were found, else 0.
  67.         //
  68.         int            notFound();
  69.  
  70.     // Strip trailing spaces from string
  71.     //
  72.     static void        stripTrailingSpaces(char *str);
  73.  
  74. protected:
  75.     State            dbState;
  76.  
  77. private:
  78.     RWCString        className;    // class name
  79. };
  80.  
  81. inline DBObject::State DBObject::getState()
  82. {
  83.     return dbState;
  84. }
  85.  
  86. inline const char *DBObject::getClassName()
  87. {
  88.     return className;
  89. }
  90.  
  91. #endif /* DBOBJECT_HXX */
  92.