EDIT: FIXED!
If you have this issue, check your other libs at data/libs.
One of them may contain a global variable with the name 'result', and that creates a conflict.
Hope that help somebody.
See ya!
-------------------------------
Hello, i'm having a strange error with database on lua scripts...
here's the code, and the error:
local players = db.getResult("SELECT * FROM players;")
local player = getCreatureByName(tostring(players:getDataString("name")))
it returns an error message:
04:12 Lua error:
data/lib/004-database.lua:79: attempt to index global 'result' (a nil value)
Here is my database.lua at line 79 :
And here is the full lib
Anybody know what that could be?
Obs.: If i do a print(players) it tells me that it's a table, and when i print the index and values, here what it looks like:
(index) -- (value)
id -- 0
query -- SELECT * FROM players;
If you have this issue, check your other libs at data/libs.
One of them may contain a global variable with the name 'result', and that creates a conflict.
Hope that help somebody.
See ya!
-------------------------------
Hello, i'm having a strange error with database on lua scripts...
here's the code, and the error:
local players = db.getResult("SELECT * FROM players;")
local player = getCreatureByName(tostring(players:getDataString("name")))
it returns an error message:
04:12 Lua error:
data/lib/004-database.lua:79: attempt to index global 'result' (a nil value)
Here is my database.lua at line 79 :
Code:
return result.getDataString(self:getID(), s)
And here is the full lib
Code:
if(result == nil) then
print("> WARNING: Couldn't load database lib.")
return
end
Result = createClass(nil)
Result:setAttributes({
id = -1,
query = ""
})
function Result:getID()
return self.id
end
function Result:setID(_id)
self.id = _id
end
function Result:getQuery()
return self.query
end
function Result:setQuery(_query)
self.query = _query
end
function Result:create(_query)
self:setQuery(_query)
local _id = db.storeQuery(self:getQuery())
if(_id) then
self:setID(_id)
end
return self:getID()
end
function Result:getRows(free)
local free = free or false
if(self:getID() == -1) then
error("[Result:getRows] Result not set!")
end
local c = 0
repeat
c = c + 1
until not self:next()
local _query = self:getQuery()
self:free()
if(not free) then
self:create(_query)
end
return c
end
function Result:getDataInt(s)
if(self:getID() == -1) then
error("[Result:getDataInt] Result not set!")
end
return result.getDataInt(self:getID(), s)
end
function Result:getDataLong(s)
if(self:getID() == -1) then
error("[Result:getDataLong] Result not set!")
end
return result.getDataLong(self:getID(), s)
end
function Result:getDataString(s)
if(self:getID() == -1) then
error("[Result:getDataString] Result not set!")
end
return result.getDataString(self:getID(), s)
end
function Result:getDataStream(s)
if(self:getID() == -1) then
error("[Result:getDataStream] Result not set!")
end
return result.getDataStream(self:getID(), s)
end
function Result:next()
if(self:getID() == -1) then
error("[Result:next] Result not set!")
end
return result.next(self:getID())
end
function Result:free()
if(self:getID() == -1) then
error("[Result:free] Result not set!")
end
self:setQuery("")
local ret = result.free(self:getID())
self:setID(-1)
return ret
end
Result.numRows = Result.getRows
function db.getResult(query)
if(type(query) ~= 'string') then
return nil
end
local ret = Result:new()
ret:create(query)
return ret
end
Anybody know what that could be?
Obs.: If i do a print(players) it tells me that it's a table, and when i print the index and values, here what it looks like:
(index) -- (value)
id -- 0
query -- SELECT * FROM players;
Last edited: