diff src/luan/modules/sql/Sql.luan @ 1407:1979cff9aad2

add sql/Web_query
author Franklin Schmidt <fschmidt@gmail.com>
date Fri, 20 Sep 2019 17:00:30 -0600
parents 8d95711f6615
children
line wrap: on
line diff
--- a/src/luan/modules/sql/Sql.luan	Wed Sep 18 09:19:58 2019 -0600
+++ b/src/luan/modules/sql/Sql.luan	Fri Sep 20 17:00:30 2019 -0600
@@ -3,6 +3,7 @@
 local error = Luan.error
 local new_error = Luan.new_error or error()
 local set_metatable = Luan.set_metatable or error()
+local range = Luan.range or error()
 local Database = require "java:luan.modules.sql.Database"
 local Logging = require "luan:logging/Logging.luan"
 local logger = Logging.logger "Sql"
@@ -32,6 +33,9 @@
 
 	function database.query(sql,...)
 		local rs = java_database.query(sql,...)
+		local query = {}
+		query.java = rs
+
 		local mt = {}
 		function mt.__index(_,key)
 			local rtn = rs.getObject(key)
@@ -39,7 +43,7 @@
 		end
 		local result = {}
 		set_metatable(result,mt)
-		return function()
+		function query.results()
 			if rs.isClosed() then
 				return nil
 			end
@@ -48,7 +52,18 @@
 				return nil
 			end
 			return result
-		end, rs
+		end
+
+		function query.column_names()
+			local meta = rs.getMetaData()
+			local names = {}
+			for i in range(1,meta.getColumnCount()) do
+				names[i] = meta.getColumnName(i)
+			end
+			return names
+		end
+
+		return query
 	end
 
 	return database