【发布时间】:2019-04-21 23:05:34
【问题描述】:
我正在寻找有关 LUA 脚本的帮助,该脚本应该以可读格式输出表的结果。
此脚本只是将结果打印为表格参考:
database.open("provider=nis;database=nis;driver=none")
query = database.query("SELECT distinct cmcs.name, ms.schedule_name, mw.start_time, mw.end_time from MAINTENANCE_WINDOW mw INNER JOIN CM_DEVICE cmd on mw.dev_id = cmd.dev_id INNER JOIN CM_COMPUTER_SYSTEM cmcs on cmcs.cs_id = cmd.cs_id INNER JOIN MAINTENANCE_SCHEDULE ms on mw.schedule_id = ms.schedule_id where mw.end_time > GETDATE();")
print (query)
上面的输出:
table:0x7fe8f40e6f00
我有以下脚本,但它没有输出我期望看到的内容:
database.open("provider=nis;database=nis;driver=none")
query = database.query("SELECT distinct cmcs.name, ms.schedule_name, mw.start_time, mw.end_time from MAINTENANCE_WINDOW mw INNER JOIN CM_DEVICE cmd on mw.dev_id = cmd.dev_id INNER JOIN CM_COMPUTER_SYSTEM cmcs on cmcs.cs_id = cmd.cs_id INNER JOIN MAINTENANCE_SCHEDULE ms on mw.schedule_id = ms.schedule_id where mw.end_time > GETDATE();")
if query == nil then
print ("Query did not complete, or had no results")
else
for idx,row in pairs (query) do
printf("Hostname: %s \t IP: %s",row['name'],row['schedule_name'])
end
end
这是在 SQL Server 本身上运行时的 SQL 输出屏幕截图(如果有任何输出):
【问题讨论】:
-
printf不是 lua 函数。 -
您使用的是哪个库?如果库返回一个表,您将不得不遍历键值对并将其格式化为所需的输出,就像您提供的示例一样。你也可以使用一些像serpent这样的序列化库来输出表格,而不需要手动循环。
-
您可以下载一个库来打印表格。我使用inspect.lua。