//////////////////////////////////////////////////////////////////////////////// // CnDb.h - Declaration file for CnDb Classes // // // Copyright 2005 by Rivar Technologies, Inc. All Rights Reserved //////////////////////////////////////////////////////////////////////////////// #ifndef CnDbIncluded #define CnDbIncluded #include #include #include #include namespace CodeNeo { class CnDbQuery; typedef std::vector CnDbQueryList; typedef enum { EQUALS = 0, // = NOT_EQUAL = 1, // <> GREATER = 2, // > LESS = 3, // < GREATEQ = 4, // >= LESSEQ = 5, // <= LIKE = 6, // LIKE() IN_SET = 7 // IN() } CnDbOper; #define DB_OPER_MASK 8 //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// // CnDbConn class // -> Represents an abstract database connection // class CnDbConn { public: CnDbConn(void); ~CnDbConn(void); virtual CnResult connect(CnString* conStr=0)=0; // Open database connection virtual void disconnect(void)=0; // Close database connection virtual bool isConnected(void)=0; // Determine if connection open virtual CnResult initQuery(CnDbQuery* query)=0; // Initialize query object virtual CnDbQuery* getQueryObject(void)=0; // Get initialized query object CnResult freeQueryObject(CnDbQuery* obj); // Free query object virtual CnString getError(void)=0; // Retrieve SQL API error string bool ReadOnly; // Read only status CnString DataSource; // Dsn name CnString UserName; // User name CnString PassWord; // User password protected: CnDbQueryList Queries; // List of allocated query objects }; //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// // CnDbQuery class // -> Represents an abstract database query and result set // class CnDbQuery { public: CnDbQuery(void); virtual ~CnDbQuery(void); virtual CnResult runQuery(CnString* sqlStr=0)=0; // Execute SQL query string virtual void closeResult(void)=0; // Close result virtual void free(void)=0; // Free object virtual CnResult getNextRow(void)=0; // Get next row of data virtual CnString getError(void)=0; // Retrieve SQL API error string virtual CnString formatDate(CnDate& date)=0; // Format date string for query virtual CnString formatTime(CnDate& date)=0; // Format time string for query virtual CnString formatDateTime(CnDate& date)=0; // Format date/time string for query unsigned int colCount(void); // Get column count virtual CnString column(unsigned int index)=0; // Get column of current row by index virtual const char* columnC(unsigned int index)=0; virtual unsigned long columnL(unsigned int index)=0; virtual double columnD(unsigned int index)=0; CnString operator [] (unsigned int index); virtual CnString column(CnString name)=0; // Get column of current row by name virtual const char* columnC(CnString name)=0; virtual unsigned long columnL(CnString name)=0; virtual double columnD(CnString name)=0; CnString operator [] (CnString name); protected: CnString Select; // Select clause CnString Insert; // Insert clause CnString Delete; // Delete clause CnString From; // From clause CnString Where; // Where clause CnString Having; // Having clause unsigned int ColCt; // Recordset colunn count }; }; // End namespace CodeNeo #endif // CnDbIncluded