//////////////////////////////////////////////////////////////////////////////// // CnOdbc.h - Declaration file for CnOdbc Classes // // // Copyright 2005 by Rivar Technologies, Inc. All Rights Reserved //////////////////////////////////////////////////////////////////////////////// #ifndef CnOdbcIncluded #define CnOdbcIncluded #include #include #define MAX_VAL_SZ 8192 // 8K max value size namespace CodeNeo { bool OdbcSuccess(short Result, bool* NoData=0); // Determine if API call succeeded //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// // CnOdbcCol structure // -> Represents a recordset column // struct CnOdbcCol { char* name; // Column name short namelen; // Column name length short type; // Column data type unsigned long size; // Column length short decimals; // Column decimal digits short nulls; // Column allows NULLS void* data; // Column data storage }; //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// // CnOdbcConn class // -> Represents a database connection // class CnOdbcConn : public CnDbConn { public: CnOdbcConn(void); ~CnOdbcConn(void); CnResult connect(CnString* conStr=0); // Open database connection void disconnect(void); // Close database connection bool isConnected(void); // Determine if connection open CnResult initQuery(CnDbQuery* query); // Initialize query object CnDbQuery* getQueryObject(void); // Get initialized query object CnString getError(void); // Retrieve SQL API error string SQLHDBC getHandle(void); // Return connection handle CnResult initHandle(SQLHSTMT* handle); // Initialize statement handle protected: SQLHENV EnvHnd; // Environment handle SQLHDBC ConHnd; // Connection handle }; //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// // CnOdbcQuery class // -> Represents the result of an SQL query // class CnOdbcQuery : public CnDbQuery { friend CnOdbcConn; public: CnOdbcQuery(void); CnOdbcQuery(SQLHSTMT handle); ~CnOdbcQuery(void); CnResult runQuery(CnString* sqlStr=0); // Execute SQL query string void closeResult(void); // Close result void free(void); // Free object CnResult getNextRow(void); // Get next row of data CnString getError(void); // Retrieve SQL API error string CnString formatDate(CnDate& date); // Format date string for query CnString formatTime(CnDate& date); // Format time string for query CnString formatDateTime(CnDate& date); // Format date/time string for query CnString column(unsigned int index); // Get column of current row by index const char* columnC(unsigned int index); unsigned long columnL(unsigned int index); double columnD(unsigned int index); CnString column(CnString name); // Get column of current row by name const char* columnC(CnString name); unsigned long columnL(CnString name); double columnD(CnString name); SQLHSTMT getHandle(void); // Return statement handle protected: void freeRow(void); // Free data row storage SQLHSTMT QueryHnd; // Statement handle CnOdbcCol* DataRow; // Recordset data row }; }; #endif // CnOdbcIncluded //////////////////////////////////////////////////////////////////////////////// // // Fin // ////////////////////////////////////////////////////////////////////////////////