home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / DBObject.hxx < prev    next >
Text File  |  1997-06-12  |  2KB  |  96 lines

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