Как вызвать скрипт luasql из .NET - PullRequest
0 голосов
/ 24 января 2019

Я использую ZeroBrane IDE для сценария lua и Visual Studio 2015 для C # Я могу вызвать скрипт lua из C # с нормальной переменной, но я не могу запустить скрипт с 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': указанный модуль не найден

1 Ответ

0 голосов
/ 24 января 2019

Я подозреваю, что одна из зависимостей odbc.dll отсутствует или не загружается (это может быть библиотека Lua DLL или другая библиотека, с которой она связана).Вы можете использовать обходчик зависимостей , чтобы получить список зависимостей и даже запустить ваше приложение в режиме «профиля», в котором будут показаны все загруженные библиотеки DLL, а также все сбойные загрузки и связанные с ними ошибки.

...