データベース(MS SQL Server)

もはや付箋とはあまり関係ない気もしますが、LuaスクリプトからMS SQL Serverに接続することも可能です。 サンプルDBのpubsのjobsテーブルからデータを取得してCSVとして表示する例です。 SQL ServerはLocalDBを使用していますので、利用中のSQL Serverに合わせて適宜データソースを変更してください。

結果

結果

require("CLRPackage")
import("System.Data.dll", "System.Data")
x = "No,"
n = 0
SQLClient = CLRPackage("System.Data", "System.Data.SqlClient")
conn = SQLClient.SqlConnection("Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=pubs;Integrated Security=True")
conn:Open()
cmd = conn:CreateCommand()
cmd.CommandText = "select * from jobs"
rdr = cmd:ExecuteReader()
while (rdr:Read()) do
  n = n + 1
  if n == 1 then
    for i = 0 , rdr.FieldCount - 1 do
      if 0 < i then
        x = x .. ","
      end
      x = x .. rdr:GetName(i)
    end
  end
  x = x .. "\n" .. string.format("%2d", n)
  for i = 0 , rdr.FieldCount - 1 do
    if rdr:IsDBNull(i) then
      x = x .. ",(null)"
    else
      x = x ..","..rdr:GetValue(i)
    end
  end
end
conn:Close()
 
comments powered by Disqus