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