home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 February / PCWK0296.iso / po7_win / object10 / boundval.h < prev    next >
C/C++ Source or Header  |  1995-02-07  |  2KB  |  86 lines

  1. /* Copyright (c) Oracle Corporation 1994.  All Rights Reserved */
  2.  
  3. /*
  4.   DESCRIPTION
  5.       A class to bind OValues.  This allows an OValue to automatically
  6.       track the value of a dynaset field.
  7.   MODIFIED
  8.       kwhitley    10/24/94    Created
  9. */
  10.  
  11. #ifndef BOUNDVAL_ORACLE
  12. #define BOUNDVAL_ORACLE
  13.  
  14. #define OBOUND_READONLY   TRUE
  15. #define OBOUND_READWRITE  FALSE
  16.  
  17.  
  18. #ifndef ORACL_ORACLE
  19. #include "oracl.h"
  20. #endif
  21.  
  22. #ifndef OBOUND_ORACLE
  23. #include "obound.h"
  24. #endif
  25.  
  26. class OBoundVal : public OBound, public OValue
  27. public:
  28.     OBoundVal();
  29.    
  30.     // declarations of methods so that compiler won't implement these (which would be wrong)
  31.     // at present we don't implement these either...
  32.     OBoundVal(const OBoundVal &other);  // copy constructor
  33.  
  34.     oresult SetProperty(BOOL mode=OBOUND_READWRITE);
  35. // Implementation
  36.     virtual ~OBoundVal();
  37.     
  38. private:    
  39.     // routines to implement OBound functionality
  40.     oresult Refresh(const OValue &val);  // database -> bound
  41.     oresult SaveChange(void);  // bound -> database
  42.     BOOL    m_mode;    // readonly/readwrite mode    
  43.  
  44. public:
  45.     /*
  46.         We must override all the ways that the OValue can have it's
  47.         value changed.  Otherwise the OValue could be changed and the
  48.         OBoundVal would't know about it.
  49.     */
  50.     oresult Clear(void);
  51.     oresult SetValue(int val);     // sets to int value
  52.     oresult SetValue(long val);
  53.     oresult SetValue(double dval); // sets to double value
  54.     oresult SetValue(const char *val); // sets string value (copies text)
  55.     oresult SetValue(const OValue &val);
  56.  
  57.     // and some overridden operator= for convenience
  58.     OBoundVal &operator=(const OBoundVal &other); // only copies value
  59.     OBoundVal &operator=(const OValue &val);
  60.     OBoundVal &operator=(const int val);    
  61.     OBoundVal &operator=(const long val);    
  62.     OBoundVal &operator=(const double val);    
  63.     OBoundVal &operator=(const char *val);
  64.     
  65.     oresult PreAdd (void);
  66.     oresult PreDelete(void);
  67.     oresult PreMove(void);
  68.     oresult PreQuery(void);
  69.     oresult PreRollback(void);
  70.     oresult PreUpdate(void);
  71.  
  72.     oresult PostAdd(void);
  73.     oresult PostDelete(void);
  74.      oresult PostMove(void);
  75.     oresult PostQuery(void);
  76.     oresult PostRollback(void);
  77.     oresult PostUpdate(void);
  78.  
  79.        oresult Startup(void);
  80.        oresult Shutdown(void);
  81.       
  82. };
  83.  
  84. #endif // BOUNDVAL_ORACLE
  85.