From 48a82fb1b5dc6df0533f688731b1207d190c5489 Mon Sep 17 00:00:00 2001 From: Ted Trask Date: Tue, 19 Nov 2013 00:20:36 +0000 Subject: Fixed adhocquery to return columns in proper order --- weblog-adhocquery-html.lsp | 6 ++---- weblog-controller.lua | 8 ++------ 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 %> - <% 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 %> <% end %> @@ -27,7 +25,7 @@ html = require("acf.html") local mark = '' if (b == 0) then mark=' class="mark"' end %> > - <% for j,name in ipairs(names) do %> + <% for j,name in ipairs(form.value.names.value) do %> <% end %> 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") -- cgit v1.2.3
<%= html.html_escape(name) %>
<%= html.html_escape(row[name]) %>