【发布时间】:2019-06-17 21:20:45
【问题描述】:
我将 ZeroBrane IDE 用于 lua 脚本,将 Visual Studio 2015 用于 C# 我可以用普通变量从 C# 调用 lua 脚本,但我不能用 sql-odbc 运行脚本,它只能在 zeroBrane 中工作,但从 c# 我不能。
这里是 c# 代码
try
{
Lua lua = new Lua();
lua.DoFile("DGT_MSID.lua");
var x = lua.DoString("return GetData()");
Console.WriteLine(x.First().ToString());
} catch(NLua.Exceptions.LuaScriptException ex)
{
Console.WriteLine(ex.Message);
}
DGT_MSID.lua 脚本
function GetData()
require "luasql.odbc"
env = assert(luasql.odbc())
print(env)
con = assert(env:connect("conan", "sa", "p@ssw0rd"))
print(con)
cur = assert (con:execute"use testdb")
cur = assert (con:execute"SELECT MSISD FROM MSID")
row = cur:fetch({}, "a")
while row do
print(string.format("%s",row.MSISD))
row = cur:fetch (row, "a")
end
cur:close()
con:close()
env:close()
return row.MSISD
end
这是这个错误:
从文件加载模块“luasql.odbc”时出错 '...\Debug\luasql\odbc.dll':找不到指定的模块
【问题讨论】:
-
您是否已将 dll 复制到所需位置?
-
所有 .dll 文件已经在调试目录的 luasql 文件夹中。
-
我在使用
nlua时遇到的一个问题是require("luasql.odbc")只会在我的lua文件夹之外查看,所以如果我有..\lua\lua_odbc.lua和..\lua\luasql\odbc.dll它只会寻找@ 987654328@没找到 -
它只适用于lua51,而NLua使用lua52,如何解决这个问题??