version 0.3.29
[fms.git] / src / db / sqlite3recordset.cpp
1 #include "../../include/db/sqlite3db/sqlite3recordset.h"\r
2 \r
3 #include <cstdlib>\r
4 \r
5 #ifdef XMEM\r
6         #include <xmem.h>\r
7 #endif\r
8 \r
9 namespace SQLite3DB\r
10 {\r
11 \r
12 Recordset::Recordset()\r
13 {\r
14         m_rs=NULL;\r
15         m_rows=0;\r
16         m_cols=0;\r
17         m_currentrow=0;\r
18 }\r
19 \r
20 Recordset::Recordset(char **rs, int rows, int cols)\r
21 {\r
22         m_rs=rs;\r
23         m_rows=rows;\r
24         m_cols=cols;\r
25         m_currentrow=0;\r
26 }\r
27 \r
28 Recordset::~Recordset()\r
29 {\r
30         Free();\r
31 }\r
32 \r
33 const char *Recordset::Get(const int row, const int field)\r
34 {\r
35         if(row>=0 && row<m_rows && field>=0 && field<m_cols)\r
36         {\r
37                 return m_rs[m_cols+(m_cols*row)+field];\r
38         }\r
39         else\r
40         {\r
41                 return NULL;\r
42         }\r
43 }\r
44 \r
45 const char *Recordset::GetColumnName(const int column)\r
46 {\r
47         if(column>=0 && column<m_cols)\r
48         {\r
49                 return m_rs[column];\r
50         }\r
51         else\r
52         {\r
53                 return NULL;\r
54         }\r
55 }\r
56 \r
57 const double Recordset::GetDouble(const int field)\r
58 {\r
59         const char *result=GetField(field);\r
60         if(result)\r
61         {\r
62                 return atof(result);\r
63         }\r
64         else\r
65         {\r
66                 return 0;\r
67         }\r
68 }\r
69 \r
70 const char *Recordset::GetField(const int field)\r
71 {\r
72         return Get(m_currentrow,field);\r
73 }\r
74 \r
75 const int Recordset::GetInt(const int field)\r
76 {\r
77         const char *result=GetField(field);\r
78         if(result)\r
79         {\r
80                 return atoi(result);\r
81         }\r
82         else\r
83         {\r
84                 return 0;\r
85         }\r
86 }\r
87 \r
88 void Recordset::Open(const std::string &sql, DB *db)\r
89 {\r
90         Free();\r
91         m_currentrow=0;\r
92 \r
93         if(sqlite3_get_table(db->GetDB(),sql.c_str(),&m_rs,&m_rows,&m_cols,NULL)==SQLITE_OK)\r
94         {\r
95         }\r
96 }\r
97 \r
98 }       // namespace\r