home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ool.zip / OOL / include / xtable.H < prev    next >
Text File  |  1997-03-18  |  3KB  |  82 lines

  1. #ifndef __OOL_XTABLE_H__
  2. #define __OOL_XTABLE_H__
  3.  
  4. /*===========================================================================*/
  5. /* OOL ------------------- the Open Object Library ------------- OS/2 Beta 1 */
  6. /*===========================================================================*/
  7. /*                              class: XTable                                */
  8. /*                       derived from: XObject                               */
  9. /*                        last update: 11/96                                 */
  10. /*                      programmed by: Stefan von Brauk (sbrauk@gwdg.de)     */
  11. /*===========================================================================*/
  12.  
  13. #include "xobject.h"
  14. #include "xstring.h"
  15. #include "xdate.h"
  16. #include "xtime.h"
  17.  
  18. #include <sql.h>     
  19. #include <sqlenv.h>  
  20. #include <sqlda.h>
  21.  
  22. typedef struct Field
  23. {
  24.    unsigned char * data;
  25.    short int ind;//*
  26. //   USHORT len;
  27. };
  28.  
  29.  
  30. class _export_ XTable: public XObject{
  31.    public:
  32.       XTable( const char * name);
  33.       ~XTable();
  34.       void AddSet(void);
  35.       int CreateIndex( char * id, char * columnList );
  36.       int CloseCursor(void);
  37.       static int Commit(void);
  38.       static int Connect( char * dbName);
  39.       static int DisConnect();
  40.       static int DropIndex( char * id);
  41.       static int DropTable( char * tab);
  42.       static int DropView( char * view);
  43.       int GetField( const char * fieldName, XString * );
  44.       int GetField( const char * fieldName, long int& value);
  45.       int GetField( const char * fieldName, XDate * value);
  46.       int GetField( const char * fieldName, XTime * value);
  47.       int GetField( const char * fieldName, double& value);
  48.       int GetField( SHORT i, XString * );
  49.       int GetField( SHORT i, long int& value);
  50.       int GetField( SHORT i, XDate * value);
  51.       int GetField( SHORT i, XTime * value);
  52.       int GetField( SHORT i, double& value);
  53.       int GetFieldIndex( const char * fieldName );
  54.       char * GetName() { return tabName; }
  55.       BOOL IsEOF ( void ) { return eoFile; }
  56.       BOOL IsCursorOpen(void) { return cursorOpen; }
  57.       int LockTable(BOOL exclusive = FALSE);
  58.       int MoveNext( void );
  59.       SHORT QueryFieldCount(void);
  60.       LONG QueryFieldLength( SHORT index );
  61.       LONG QueryFieldLength( SHORT index, SHORT& precision, SHORT& scale);
  62.       BOOL QueryFieldName( XString * buffer, SHORT index);
  63.       SHORT QueryFieldType( SHORT index);
  64.       static int Rollback(void);
  65.       int SaveSet( void );
  66.       int Select(const char * whereList, char * order=NULL, char * group=NULL, BOOL update=FALSE);
  67.       int SetField( const char * fieldName, long int value, BOOL isNull = FALSE);
  68.       int SetField( const char * fieldName, char * value, BOOL isNull = FALSE);
  69.    private: 
  70.       static int Drop(char* t, char*n);
  71.       BOOL cursorOpen, insertFlag;
  72.       struct sqlca sqlca;
  73.       sqlda * sql;
  74.       char * tabName; 
  75.       BOOL eoFile;
  76. //      SHORT myCursor;
  77.       Field * fields;
  78.       XString sqlString;
  79. };
  80.  
  81. #endif
  82.