summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2013-11-19 00:20:36 +0000
committerTed Trask <ttrask01@yahoo.com>2013-11-19 00:20:36 +0000
commit48a82fb1b5dc6df0533f688731b1207d190c5489 (patch)
tree0dd65ab075d8b5a2d2e29ffa34b97f6427a7a8e4
parentcc7cd9d7049dcaa7809733df1b81f6fbdbfb69ea (diff)
downloadacf-weblog-48a82fb1b5dc6df0533f688731b1207d190c5489.tar.bz2
acf-weblog-48a82fb1b5dc6df0533f688731b1207d190c5489.tar.xz
Fixed adhocquery to return columns in proper order
-rw-r--r--weblog-adhocquery-html.lsp6
-rw-r--r--weblog-controller.lua8
-rw-r--r--weblog-model.lua4
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")