Mercurial Hosting > luan
comparison 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 |
comparison
equal
deleted
inserted
replaced
1406:8187ddb0e827 | 1407:1979cff9aad2 |
---|---|
1 require "java" | 1 require "java" |
2 local Luan = require "luan:Luan.luan" | 2 local Luan = require "luan:Luan.luan" |
3 local error = Luan.error | 3 local error = Luan.error |
4 local new_error = Luan.new_error or error() | 4 local new_error = Luan.new_error or error() |
5 local set_metatable = Luan.set_metatable or error() | 5 local set_metatable = Luan.set_metatable or error() |
6 local range = Luan.range or error() | |
6 local Database = require "java:luan.modules.sql.Database" | 7 local Database = require "java:luan.modules.sql.Database" |
7 local Logging = require "luan:logging/Logging.luan" | 8 local Logging = require "luan:logging/Logging.luan" |
8 local logger = Logging.logger "Sql" | 9 local logger = Logging.logger "Sql" |
9 | 10 |
10 | 11 |
30 database.update = java_database.update | 31 database.update = java_database.update |
31 database.set = java_database.set | 32 database.set = java_database.set |
32 | 33 |
33 function database.query(sql,...) | 34 function database.query(sql,...) |
34 local rs = java_database.query(sql,...) | 35 local rs = java_database.query(sql,...) |
36 local query = {} | |
37 query.java = rs | |
38 | |
35 local mt = {} | 39 local mt = {} |
36 function mt.__index(_,key) | 40 function mt.__index(_,key) |
37 local rtn = rs.getObject(key) | 41 local rtn = rs.getObject(key) |
38 return not rs.wasNull() and rtn or nil | 42 return not rs.wasNull() and rtn or nil |
39 end | 43 end |
40 local result = {} | 44 local result = {} |
41 set_metatable(result,mt) | 45 set_metatable(result,mt) |
42 return function() | 46 function query.results() |
43 if rs.isClosed() then | 47 if rs.isClosed() then |
44 return nil | 48 return nil |
45 end | 49 end |
46 if not rs.next() then | 50 if not rs.next() then |
47 rs.close() | 51 rs.close() |
48 return nil | 52 return nil |
49 end | 53 end |
50 return result | 54 return result |
51 end, rs | 55 end |
56 | |
57 function query.column_names() | |
58 local meta = rs.getMetaData() | |
59 local names = {} | |
60 for i in range(1,meta.getColumnCount()) do | |
61 names[i] = meta.getColumnName(i) | |
62 end | |
63 return names | |
64 end | |
65 | |
66 return query | |
52 end | 67 end |
53 | 68 |
54 return database | 69 return database |
55 end | 70 end |
56 | 71 |