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

  1. #ifndef _IDSMCOD_HPP_
  2. #define _IDSMCOD_HPP_
  3.  
  4. /*******************************************************************************
  5. * FILE NAME: idsmcod.hpp                                                       *
  6. *                                                                              *
  7. * DESCRIPTION:                                                                 *
  8. *     IDatastoreODBC - 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. #include <ihandle.hpp>
  38.  
  39. #pragma pack(4)
  40.  
  41. class DAX_IMPORTEXPORT IDatastoreODBC : public IDatastoreBase
  42. {
  43.  
  44. friend class ISQLStatementProxy;
  45.  
  46. public:
  47.  
  48.   enum AccessMode {readOnly, readWrite};
  49.   enum IsolationLevel {readUncommitted, readCommitted, repeatableRead,
  50.                        serializable, databaseDefault};
  51.   enum DriverPrompt {driverPromptRequest, driverComplete, driverCompleteRequired,
  52.                      noDriverPrompt};
  53.  
  54.   IDatastoreODBC ( const char* datastoreName,
  55.                    const char* connectString = "" );
  56.  
  57.   IDatastoreODBC();
  58.  
  59. virtual
  60.   ~IDatastoreODBC ();                                 // Destructor
  61.  
  62.  virtual IDatastoreODBC&
  63.    connect ();
  64.  
  65.  virtual IDatastoreODBC& connect ( const char* datastoreName );
  66.  
  67.  virtual IDatastoreODBC&
  68.    connect ( const char* userName,
  69.              const char* authentication);
  70.  
  71.  virtual IDatastoreODBC& connect ( const char* datastoreName,
  72.                                    const char* userName,
  73.                                    const char* authentication );
  74.  
  75.  virtual IDatastoreODBC& connect ( const char* datastoreName,
  76.                                    const char* connectString,
  77.                                    const char* userName,
  78.                                    const char* authentication );
  79.  
  80.  virtual IDatastoreODBC&
  81.    disconnect ();
  82.  
  83.  virtual IDatastoreODBC&
  84.    commit ();
  85.  
  86.  virtual IDatastoreODBC&
  87.    rollback ();
  88.  
  89. virtual IString
  90.    connectString() const;
  91.  
  92.  virtual IDatastoreODBC&
  93.    setConnectString(const char* aConnectString);
  94.  
  95.  virtual IDatastoreODBC&
  96.    setUserName(const char* aUserName);
  97.  
  98.  virtual IDatastoreODBC&
  99.    setAuthentication(const char* aAuthentication);
  100.  
  101. virtual IDatastoreODBC&
  102.    setDatastoreName(const char* aDatastoreName);
  103.  
  104.  virtual IDatastoreODBC&
  105.    executeSQL(const char* aCmd);
  106.  
  107.  virtual IDatastoreODBC::AccessMode
  108.    accessMode() const;
  109.  
  110.  virtual IDatastoreODBC&
  111.    setAccessMode(IDatastoreODBC::AccessMode option);
  112.  
  113.  virtual IBoolean
  114.    isAutoCommit() const;
  115.  
  116.  virtual IDatastoreODBC&
  117.    enableAutoCommit(IBoolean enable = True );
  118.  
  119.  virtual IDatastoreODBC::IsolationLevel
  120.    isolationLevel() const;
  121.  
  122.  virtual IDatastoreODBC&
  123.    setIsolationLevel(IDatastoreODBC::IsolationLevel option);
  124.  
  125.  virtual IDatastoreODBC::DriverPrompt
  126.     driverPrompt() const;
  127.  
  128.  virtual IDatastoreODBC&
  129.     setDriverPrompt(IDatastoreODBC::DriverPrompt option, IWindowHandle aHandle = IWindowHandle());
  130.  
  131. static const INotificationId connectStringId;
  132. static const INotificationId accessModeId;
  133. static const INotificationId autoCommitId;
  134. static const INotificationId isolationLevelId;
  135. static const INotificationId driverPromptId;
  136. static const INotificationId readyId;
  137.  
  138.   virtual IDatastoreODBC& initializePart();
  139.  
  140. protected:
  141. /*--------------------------------- PROTECTED --------------------------------*/
  142.    Boolean makeConnections();
  143.  
  144. private:
  145. /*--------------------------------- PRIVATE ----------------------------------*/
  146.    void* environmentHandle();
  147.    void* connectionHandle();
  148.    IString iConnectString;
  149.    IDatastoreODBC::AccessMode eAccessMode;
  150.    IBoolean eAutoCommit;
  151.    IDatastoreODBC::IsolationLevel eIsolationLevel;
  152.    IDatastoreODBC::DriverPrompt eDriverPrompt;
  153.    IString type();
  154.  
  155. };
  156.  
  157. #pragma pack()
  158.  
  159. #endif /* _IDSMCOD_HPP_ */
  160.