LuaスクリプトからSQLiteを利用することも可能です。
準備
CLRPackage.luaとSQLite.Netのインストールを行っておきます。 CLRPackage.luaは [NLuaのgithubのページ] にあるCLRPackage.luaをダウンロードして CFusen.exeと同じフォルダーにコピーしてください。
SQLite.Netは [SQLite Wiki] にある.Net4.Xでビルドされた利用中のWindowsに合ったもの(32bit or 64bit) をダウンロードしてSystem.Data.SQLite.dllをCFusen.exeと同じフォルダーにコピーします。 SQLite.Netがbundle版でない場合はSQLite.Interop.dllも必要なのでCFusen.exeと同じフォルダーにコピーします。 dbファイルは何処に保存されていても構いません。
参考:System.Data.SQLiteでどれをインストールするべきか
テーブルの読み込み
次のサンプルはSQLite.Netに付属のnorthwindEF.dbからCustomersテーブルをcsvとして付箋上に表示する例です。 DBファイルのパスは適宜変更してください。
require("CLRPackage")
import("System.Data.SQLite.dll", "System.Data.SQLite")
x = "No,"
n = 0
SQLite = CLRPackage("System.Data.SQLite", "System.Data.SQLite")
conn = SQLite.SQLiteConnection("Data Source=SQLiteNet\\northwindEF.db")
conn:Open()
cmd = conn:CreateCommand()
cmd.CommandText = "select * from Customers"
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()
結果(の一部)
Luaスクリプトの注意点
今回の様にLuaスクリプトで.Netのクラスを 利用する場合は スクリプトの間違いでエラーが発生すると 正しく入力し直したとしても エラーが出続ける場合があります。 その様な場合は CFusenの全付箋再読込を行ってみてください。
comments powered by Disqus