50d3f0ce56aff09133080903879a377241e66b0c
[fms.git] / src / http / pages / execquerypage.cpp
1 #include "../../../include/http/pages/execquerypage.h"\r
2 #include "../../../include/stringfunctions.h"\r
3 \r
4 #ifdef XMEM\r
5         #include <xmem.h>\r
6 #endif\r
7 \r
8 const std::string ExecQueryPage::GeneratePage(const std::string &method, const std::map<std::string,std::string> &queryvars)\r
9 {\r
10         std::string content="";\r
11 \r
12         if(queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="execute" && queryvars.find("query")!=queryvars.end() && (*queryvars.find("query")).second!="")\r
13         {\r
14                 SQLite3DB::Recordset rs=m_db->Query((*queryvars.find("query")).second);\r
15 \r
16                 content+="<table>";\r
17                 if(rs.Count()>0)\r
18                 {\r
19                         content+="<tr>";\r
20                         for(int i=0; i<rs.Cols(); i++)\r
21                         {\r
22                                 content+="<th>";\r
23                                 if(rs.GetColumnName(i))\r
24                                 {\r
25                                         content+=rs.GetColumnName(i);\r
26                                 }\r
27                                 content+="</th>";\r
28                         }\r
29                         content+="<tr>";\r
30                 }\r
31                 while(!rs.AtEnd())\r
32                 {\r
33                         content+="<tr>";\r
34                         for(int i=0; i<rs.Cols(); i++)\r
35                         {\r
36                                 content+="<td>";\r
37                                 if(rs.GetField(i))\r
38                                 {\r
39                                         content+=rs.GetField(i);\r
40                                 }\r
41                                 content+="</td>";\r
42                         }\r
43                         content+="</tr>";\r
44                         rs.Next();\r
45                 }\r
46                 content+="</table>";\r
47         }\r
48 \r
49         content+="<h2>Execute Query</h2>";\r
50         content+="<form name=\"frmquery\" method=\"POST\">";\r
51         content+="<input type=\"hidden\" name=\"formaction\" value=\"execute\">";\r
52         content+="<textarea name=\"query\" rows=\"10\" cols=\"80\"></textarea>";\r
53         content+="<input type=\"submit\" value=\"Execute Query\">";\r
54         content+="</form>";\r
55 \r
56         return "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n"+StringFunctions::Replace(m_template,"[CONTENT]",content);\r
57 }\r
58 \r
59 const bool ExecQueryPage::WillHandleURI(const std::string &uri)\r
60 {\r
61         if(uri.find("execquery.")!=std::string::npos)\r
62         {\r
63                 return true;\r
64         }\r
65         else\r
66         {\r
67                 return false;\r
68         }\r
69 }\r