#ifndef __ODBCRSET_H #define __ODBCRSET_H #ifndef __RECSET_H #include #endif class TODBC_recordset : public TRecordset { TString _sql; XVT_ODBC _odbc; TRecnotype _first_row, _pagesize, _items, _current_row; TArray _column; TArray _page; protected: XVT_ODBC connection() const; void close(); void reset(); const TArray* row(TRecnotype n); unsigned int columns() const; const TRecordset_column_info& column_info(unsigned int c) const; public: virtual TRecnotype items() const; virtual bool move_to(TRecnotype pos); virtual TRecnotype current_row() const; virtual void requery(); virtual const TString& query_text() const; const TVariant& get(unsigned int c) const; // Callbacks int on_get_columns(int argc, char** values, char** columns); int on_get_rows(int argc, char** values); void set(const char* sql); bool connect(const char* dsn, const char* usr = "", const char* pwd = "", const char* dir = ""); TODBC_recordset(const char* sql); virtual ~TODBC_recordset(); }; #endif