Подключение к двум различным базам данных sqlite в lua с использованием luasql

Цель

Я пытаюсь подключиться к двум разным базам данных, одна за другой. Я знаю, что первое соединение работает, потому что я пытаюсь создать новую запись, и это работает. Когда я пытаюсь подключиться ко второй базе данных и выполнить запрос к таблице, логика завершается с ошибкой, говорящей о том, что запрашиваемая таблица не существует. Но я знаю, что это так.

Вот тестовый код, который создает объекты подключения:

local database1con 
local database2con
local database1env
local database2env

local firstdatabase_connect = function()
   if not database1con then
      database1env = assert (luasql.sqlite3())
      database1con = assert (database1env:connect("database1.sqlite"))
      return true
   else
      return false 
   end
end

local seconddatabase_connect = function()
   if not database2con then
      database2env = assert (luasql.sqlite3())
      database2con = assert (database2env:connect("database2.sqlite"))
      return true
   else
      return false 
   end
end


local firstdatabase_disconnect = function()
    if database1env then
        database1env:close()
        database1env = nil
    end
    if database1con then
        database1con:close()
        database1con = nil
    end
end

local seconddatabase_disconnect = function()
    if database2env then
        database2env:close()
        database2env = nil
    end
    if database2con then
        database2con:close()
        database2con = nil
    end
end

И вот логика, которая пытается на самом деле подключиться к базам данных:

local connected = firstdatabase_connect()
-- run some select & insert commands
firstdatabase_disconnect()

-- now connect to second database
sql = "INSERT INTO users VALUES("..user_id..", "..username.value..", 'test',"..os.date("%Y%m%d%H%M%S")..", Null,Null)"

local db2connected = seconddatabase_connect()
if db2connected then
    local res, err = database2con:execute(sql)
    if not res and err then
        success = false
    end
    seconddatabase_disconnect()
end

проблема

Ошибка вставки со следующим сообщением: LuaSQL: нет такой таблицы: пользователи Таблицы пользователей не существуют в database1, но существуют в database2.

Что я тестировал до сих пор

Я подумал, что, возможно, даже если я отключаюсь от первой базы данных, она как-то проверяет неправильную базу данных. Поэтому после того, как я сделал вызов firstdatabase_disconnect(), я добавил еще один оператор select, который пытался выбрать из первой базы данных.
Сбой системы с сообщением о том, что объект соединения для database1 равен nil. и это хорошо.

Я не уверен, что еще проверить. Если у вас есть какие-либо предложения, я буду признателен.

0 ответов

Другие вопросы по тегам