69ad5e5ee91bd3fb9bbac080c9ffaaad59f5605f
[fms.git] / include / db / sqlite3db / sqlite3recordset.h
1 #ifndef _sqlite3recordset_\r
2 #define _sqlite3recordset_\r
3 \r
4 #include "sqlite3db.h"\r
5 \r
6 namespace SQLite3DB\r
7 {\r
8 \r
9 class Recordset\r
10 {\r
11 public:\r
12         Recordset();\r
13         Recordset(char **rs, int rows, int cols);\r
14         virtual ~Recordset();\r
15 \r
16         virtual void Free() { if(m_rs) { sqlite3_free_table(m_rs); m_rs=NULL; } }\r
17         virtual const bool Empty() { return (m_rs==NULL || m_rows==0) ? true : false ; }\r
18 \r
19         virtual const int Count() { return m_rows; }\r
20         virtual const bool AtBeginning() { return m_currentrow==0; }\r
21         virtual const bool AtEnd() { return m_currentrow>=m_rows; }\r
22 \r
23         virtual const bool Next() { if(m_currentrow<m_rows) { m_currentrow++; return true; } else { return false; } }\r
24         virtual const bool Previous() { if(m_currentrow-1>=0) { m_currentrow--; return true; } else { return false; } }\r
25         virtual void Beginning() { m_currentrow=0; }\r
26 \r
27         virtual const char *Get(const int row, const int field);\r
28         virtual const char *GetField(const int field);\r
29         virtual const int GetInt(const int field);\r
30         virtual const double GetDouble(const int field);\r
31 \r
32         virtual void Open(const std::string &sql, DB *db);\r
33 \r
34 private:\r
35         char **m_rs;\r
36         int m_rows;\r
37         int m_cols;\r
38         int m_currentrow;\r
39 \r
40 };      // class Recordset\r
41 \r
42 }       // namespace\r
43 \r
44 #endif  // _sqlite3recordset_\r