我正在将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':找不到指定的模块
答案 0 :(得分:0)
我怀疑odbc.dll的依赖项之一丢失或没有加载(可能是Lua DLL或与其链接的其他库)。您可以使用dependency walker来获取依赖项列表,甚至可以在“配置文件”模式下运行应用程序,该模式将显示所有已加载的DLL,以及所有失败的加载及其相关的错误。