home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / include / idsmcdb.hpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-02-22  |  4.3 KB  |  163 lines

  1. #ifndef _IDSMCDB_HPP_
  2. #define _IDSMCDB_HPP_
  3.  
  4. /*******************************************************************************
  5. * FILE NAME: idsmcdb.hpp                                                       *
  6. *                                                                              *
  7. * DESCRIPTION:                                                                 *
  8. *     IDatastoreDB2 - Manage a datastore connection.                           *
  9. *                                                                              *
  10. *******************************************************************************/
  11.  
  12. /***********************************************
  13.  
  14.     Licensed Materials - Property of IBM
  15.  
  16.     5622-880   5801-AAR
  17.  
  18.     (c) Copyright IBM Corp 1991, 1996.
  19.  
  20. ************************************************/
  21.  
  22. #ifndef __TOS_WIN__
  23.  #ifndef DAX_IMPORTEXPORT
  24.    #define DAX_IMPORTEXPORT _Export
  25.  #endif
  26. #else
  27.  #ifndef DAX_IMPORTEXPORT
  28.    #define DAX_IMPORTEXPORT _Import
  29.  #endif
  30. #endif
  31.  
  32. #include <istring.hpp>
  33. #include <istdntfy.hpp>
  34. #include <ihandle.hpp>
  35. #include <idsexc.hpp>
  36. #include <idsmcbs.hpp>
  37.  
  38. #pragma pack(4)
  39.  
  40. class DAX_IMPORTEXPORT IDatastoreDB2 : public IDatastoreBase
  41. {
  42.  
  43. friend class ISQLStatementProxy;
  44.  
  45. public:
  46.  
  47.   enum AccessMode {readOnly, readWrite};
  48.   enum IsolationLevel {readUncommitted, readCommitted, repeatableRead,
  49.                        serializable, databaseDefault};
  50.   enum DriverPrompt {driverPromptRequest, driverComplete, driverCompleteRequired,
  51.                      noDriverPrompt};
  52.  
  53.  
  54.   IDatastoreDB2 ( const char* datastoreName,
  55.                   const char* connectString = "" );
  56.  
  57.   IDatastoreDB2();
  58.  
  59. virtual
  60.   ~IDatastoreDB2 ();                                 // Destructor
  61.  
  62.  virtual IDatastoreDB2&
  63.    connect ();
  64.  
  65.  virtual IDatastoreDB2& connect ( const char* datastoreName );
  66.  
  67.  
  68.  virtual IDatastoreDB2&
  69.    connect ( const char* userName,
  70.              const char* authentication);
  71.  
  72.  virtual IDatastoreDB2& connect ( const char* datastoreName,
  73.                                   const char* userName,
  74.                                   const char* authentication );
  75.  
  76.  virtual IDatastoreDB2& connect ( const char* datastoreName,
  77.                                   const char* connectString,
  78.                                   const char* userName,
  79.                                   const char* authentication );
  80.  
  81.  virtual IDatastoreDB2&
  82.    disconnect ();
  83.  
  84.  virtual IDatastoreDB2&
  85.    commit ();
  86.  
  87.  virtual IDatastoreDB2&
  88.    rollback ();
  89.  
  90. virtual IString
  91.    connectString() const;
  92.  
  93.  virtual IDatastoreDB2&
  94.    setConnectString(const char* aConnectString);
  95.  
  96.  virtual IDatastoreDB2&
  97.    setUserName(const char* aUserName);
  98.  
  99.  virtual IDatastoreDB2&
  100.    setAuthentication(const char* aAuthentication);
  101.  
  102. virtual IDatastoreDB2&
  103.    setDatastoreName(const char* aDatastoreName);
  104.  
  105.  virtual IDatastoreDB2&
  106.    executeSQL(const char* aCmd);
  107.  
  108.  virtual IDatastoreDB2::AccessMode
  109.    accessMode() const;
  110.  
  111.  virtual IDatastoreDB2&
  112.    setAccessMode(IDatastoreDB2::AccessMode option);
  113.  
  114.  virtual IBoolean
  115.    isAutoCommit() const;
  116.  
  117.  virtual IDatastoreDB2&
  118.    enableAutoCommit(IBoolean enable = True);
  119.  
  120.  virtual IDatastoreDB2::IsolationLevel
  121.    isolationLevel() const;
  122.  
  123.  virtual IDatastoreDB2&
  124.    setIsolationLevel(IDatastoreDB2::IsolationLevel option);
  125.  
  126.  virtual IDatastoreDB2::DriverPrompt
  127.     driverPrompt() const;
  128.  
  129.  virtual IDatastoreDB2&
  130.     setDriverPrompt(IDatastoreDB2::DriverPrompt option, IWindowHandle aHandle = IWindowHandle());
  131.  
  132. static const INotificationId readyId;
  133. static const INotificationId connectStringId;
  134. static const INotificationId accessModeId;
  135. static const INotificationId autoCommitId;
  136. static const INotificationId isolationLevelId;
  137. static const INotificationId driverPromptId;
  138.  
  139.   virtual IDatastoreDB2& initializePart();
  140.  
  141.  
  142. protected:
  143. /*--------------------------------- PROTECTED --------------------------------*/
  144.    Boolean makeConnections();
  145.  
  146. private:
  147. /*--------------------------------- PRIVATE ----------------------------------*/
  148.    IString type();
  149.    void* environmentHandle();
  150.    void* connectionHandle();
  151.    IString iConnectString;
  152.    IDatastoreDB2::AccessMode eAccessMode;
  153.    IBoolean eAutoCommit;
  154.    IDatastoreDB2::IsolationLevel eIsolationLevel;
  155.    IDatastoreDB2::DriverPrompt eDriverPrompt;
  156.  
  157.  
  158. };
  159.  
  160. #pragma pack()
  161.  
  162. #endif /* _IDSMCDB_HPP_ */
  163.