diff options
author | Ted Trask <ttrask01@yahoo.com> | 2013-11-19 00:20:36 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2013-11-19 00:20:36 +0000 |
commit | 48a82fb1b5dc6df0533f688731b1207d190c5489 (patch) | |
tree | 0dd65ab075d8b5a2d2e29ffa34b97f6427a7a8e4 | |
parent | cc7cd9d7049dcaa7809733df1b81f6fbdbfb69ea (diff) | |
download | acf-weblog-48a82fb1b5dc6df0533f688731b1207d190c5489.tar.bz2 acf-weblog-48a82fb1b5dc6df0533f688731b1207d190c5489.tar.xz |
Fixed adhocquery to return columns in proper order
-rw-r--r-- | weblog-adhocquery-html.lsp | 6 | ||||
-rw-r--r-- | weblog-controller.lua | 8 | ||||
-rw-r--r-- | weblog-model.lua | 4 |
3 files changed, 8 insertions, 10 deletions
diff --git a/weblog-adhocquery-html.lsp b/weblog-adhocquery-html.lsp index 074ddcb..0c24cd7 100644 --- a/weblog-adhocquery-html.lsp +++ b/weblog-adhocquery-html.lsp @@ -16,9 +16,7 @@ html = require("acf.html") <% else %> <TABLE> <TR style="font-weight:bold;"> - <% names = {} - for name,val in pairs(form.value.result.value[1]) do - names[#names+1] = name %> + <% for i,name in ipairs(form.value.names.value) do %> <TD class="header"><%= html.html_escape(name) %></TD> <% end %> </TR> @@ -27,7 +25,7 @@ html = require("acf.html") local mark = '' if (b == 0) then mark=' class="mark"' end %> <TR<%= mark %>> - <% for j,name in ipairs(names) do %> + <% for j,name in ipairs(form.value.names.value) do %> <TD><%= html.html_escape(row[name]) %></TD> <% end %> </TR> diff --git a/weblog-controller.lua b/weblog-controller.lua index 54f3936..93a23b0 100644 --- a/weblog-controller.lua +++ b/weblog-controller.lua @@ -86,14 +86,10 @@ function mymodule.downloadadhocquery(self) local file = cfe({ type="longtext", value="", label="weblogadhocquery.tab" }) if retval.value.result and #retval.value.result.value > 0 then - local columns = {} - for name,val in pairs(retval.value.result.value[1]) do - columns[#columns+1] = name - end - local content = {table.concat(columns, "\t")} + local content = {table.concat(retval.value.names.value, "\t")} for i,entry in ipairs(retval.value.result.value) do local line = {} - for i,name in ipairs(columns) do + for i,name in ipairs(retval.value.names.value) do line[#line+1] = entry[name] or "" end content[#content+1] = table.concat(line, "\t") diff --git a/weblog-model.lua b/weblog-model.lua index 2a771b0..eca067a 100644 --- a/weblog-model.lua +++ b/weblog-model.lua @@ -1357,6 +1357,10 @@ function mymodule.adhocquery(self, query) query.value.query.errtxt = err or "Select failed" query.errtxt = "Query failed" else + query.value.names = cfe({ type="list", value={}, label="Column names" }) + query.value.names.value = cur:getcolnames() + query.value.types = cfe({ type="list", value={}, label="Column types" }) + query.value.types.value = cur:getcoltypes() query.value.result = cfe({ type="list", value={}, label="Select result" }) local result = query.value.result.value local row = cur:fetch ({}, "a") |