0
關閉db連接之前關閉lua腳本中所有打開的遊標的正確模式是什麼?我有一個輔助函數rows(),它在多個地方創建了遊標,在函數end()上,我希望能夠關閉所有已創建的遊標。達到如何關閉Lua中所有打開的遊標?
function rows (sql_statement)
local cursor = assert (con:execute (sql_statement));
local closed = false;
return function()
if (closed) then return nil end;
local row = {};
result = cursor:fetch(row);
if (result == nil) then
cursor:close();
closed = true;
return nil;
end;
return row;
end
end
function end()
-- this con:close() call fails because of open cursors
con:close();
env:close();
end
數據庫處理不是「本地」Lua的一部分,對吧?如果你正在使用一個庫,也許你應該提及哪一個,因爲不同的可能會有不同的實現和行爲。 – 2010-07-22 11:37:20
注意:end是一個關鍵字,並且不能用作函數的名稱。 – daurnimator 2010-07-22 19:38:30