version 0.1.12
[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         virtual const int Cols() { return m_cols; }\r
23 \r
24         virtual const bool Next() { if(m_currentrow<m_rows) { m_currentrow++; return true; } else { return false; } }\r
25         virtual const bool Previous() { if(m_currentrow-1>=0) { m_currentrow--; return true; } else { return false; } }\r
26         virtual void Beginning() { m_currentrow=0; }\r
27 \r
28         virtual const char *Get(const int row, const int field);\r
29         virtual const char *GetField(const int field);\r
30         virtual const int GetInt(const int field);\r
31         virtual const double GetDouble(const int field);\r
32 \r
33         virtual void Open(const std::string &sql, DB *db);\r
34 \r
35 private:\r
36         char **m_rs;\r
37         int m_rows;\r
38         int m_cols;\r
39         int m_currentrow;\r
40 \r
41 };      // class Recordset\r
42 \r
43 }       // namespace\r
44 \r
45 #endif  // _sqlite3recordset_\r