BluntZ Posted February 26, 2016 Share Posted February 26, 2016 ----------------------------------------->> -- Grand Theft International (GTi) -- Author: JT Pennington (JTPenn) -- Date: 29 Aug 2014 -- Resource: GTIbank/database.slua -- Version: 1.0 ----------------------------------------->> local ipairs = ipairs local type = type local tonumber = tonumber local SERVER_PORT = 22003 -- Only Save Data on Dev Server local db = dbConnect("mysql", "dbname=gti;host=127.0.0.1", "GTI", "") dbExec(db, "CREATE TABLE IF NOT EXISTS `banking`(`id` INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id))") local database_online -- Is banking Database Online? local banking = {} -- 'banking' Database Cache addEvent("onDatabaseLoad", true) -- Triggers when gti database is ready addEvent("onLogDatabaseLoad", true) -- Triggers when log database is ready -- Database Cache ------------------>> addEventHandler("onResourceStart", resourceRoot, function() dbQuery(cacheDatabase, db, "SELECT * FROM `banking`") end) function cacheDatabase(qh) local result = dbPoll(qh, 0) banking["Console"] = {} for i,row in ipairs(result) do banking[row.name] = {} for column,value in pairs(row) do if (column ~= "id" or column ~= "name") then banking["Console"][column] = true if (value == "true") then value = true end if (value == "false") then value = false end banking[row.name][column] = value end end end database_online = true triggerEvent("onDatabaseLoad", resourceRoot, "banking") end -- Banking Data Exports ------------------------>> function setBankData(account, key, value) if (not database_online) then return false end if (not account or not key) then return false end if (isGuestAccount(account) or type(key) ~= "string") then return false end local account = getAccountName(account) if (type(banking[account]) ~= "table") then banking[account] = {} if (getServerPort() == SERVER_PORT) then dbExec(db, "INSERT INTO `banking`(name) VALUES(?)", account) end end if (banking["Console"][key] == nil) then if (getServerPort() == SERVER_PORT) then dbExec(db, "ALTER TABLE `banking` ADD `??` text", key) end banking["Console"][key] = true end banking[account][key] = value if (getServerPort() == SERVER_PORT) then if (value ~= nil) then dbExec(db, "UPDATE `banking` SET `??`=? WHERE name=?", key, tostring(value), account) else dbExec(db, "UPDATE `banking` SET `??`=NULL WHERE name=?", key, account) end end return true end function getBankData(account, key) if (not database_online) then return end if (not account or not key) then return end if (isGuestAccount(account) or type(key) ~= "string") then return end local account = getAccountName(account) if (banking[account] == nil) then return end if (banking[account][key] == nil or banking[account][key] == "nil") then return end if (key == "pin" or key == "acc_number") then return banking[account][key] end return tonumber(banking[account][key]) or banking[account][key] end addEvent("onAccountDelete") addEventHandler("onAccountDelete", root, function(account) dbExec(db, "DELETE FROM `banking` WHERE name=?", account) banking[account] = nil end) -- Transaction Log ------------------->> local dbLogs = dbConnect("mysql", "dbname=gti_logs;host=127.0.0.1", "GTILogs", "") function addLogToDatabase(category, timestamp, text, cash, balance, player, account) dbExec(dbLogs, "CREATE TABLE IF NOT EXISTS `log_"..category.."`(id INT NOT NULL AUTO_INCREMENT, timestamp INT, text TEXT, cash INT, balance INT, player TEXT, account TEXT, ip TEXT, serial TEXT, PRIMARY KEY(id))") local serial, ip if (isElement(player)) then serial = getPlayerSerial(player) ip = getPlayerIP(player) player = getPlayerName(player) end dbExec(dbLogs, "INSERT INTO `log_"..category.."`(timestamp, text, cash, balance, player, account, ip, serial) VALUES(?, ?, ?, ?, ?, ?, ?, ?)", timestamp, text, cash, balance, player, account, ip, serial) return true end function getAccountLogs(player, account, data_table, recovery) if (not player or not account or not data_table) then return false end if (data_table ~= "bank" and data_table ~= "cash" and data_table ~= "groupbank") then return false end if ( recovery ) then dbQuery(recoveryCallback, {player, data_table}, dbLogs, "SELECT * FROM `log_"..data_table.."` WHERE `account`=? ORDER BY `timestamp` DESC LIMIT 500", account) else dbQuery(returnDatabase, {player, data_table}, dbLogs, "SELECT * FROM `log_"..data_table.."` WHERE `account`=? ORDER BY `timestamp` DESC LIMIT 250", account) end end function returnDatabase(qh, player, data_table) local result = dbPoll(qh, 0) triggerEvent("onLogDatabaseLoad", player, data_table, result) end addEvent("onAccountDelete") addEventHandler("onAccountDelete", root, function(account) dbExec(dbLogs, "DELETE FROM `log_bank` WHERE account=?", account) dbExec(dbLogs, "DELETE FROM `log_cash` WHERE account=?", account) end) function getDatabaseLogs() return dbLogs end I need help to convert it into SQLITE ... Kindly help , Thanks Link to comment
KariiiM Posted February 26, 2016 Share Posted February 26, 2016 You just have to change this line local db = dbConnect("mysql", "dbname=gti;host=127.0.0.1", "GTI", "") to local db = dbConnect("sqlite", "database.db") Link to comment
BluntZ Posted February 26, 2016 Author Share Posted February 26, 2016 You just have to change this line local db = dbConnect("mysql", "dbname=gti;host=127.0.0.1", "GTI", "") to local db = dbConnect("sqlite", "database.db") I did but there is bug in code that "There is no such column 'name' clause etc Link to comment
KariiiM Posted February 26, 2016 Share Posted February 26, 2016 I did but there is bug in code that "There is no such column 'name' clause etc What do you mean? the table doesn't have column onto it? Link to comment
BluntZ Posted February 26, 2016 Author Share Posted February 26, 2016 yeah when i run that resource then i find error that column 'name' is missing Link to comment
KariiiM Posted February 26, 2016 Share Posted February 26, 2016 yeah when i run that resource then i find error that column 'name' is missing I have no idea the code look fine, or maybe the author of this script, had used alter to the table that's why. Link to comment
ozulus Posted February 26, 2016 Share Posted February 26, 2016 local db = dbConnect("sqlite", "database.db") dbExec(db, "CREATE TABLE IF NOT EXISTS `banking`(`id` INT PRIMARY KEY AUTOINCREMENT)") NOT NULL AUTO_INCREMENT and PRIMARY KEY(id) is only for MySQL. So you can't use it. You can use PRIMARY KEY AUTOINCREMENT instead of them. Link to comment
BluntZ Posted February 27, 2016 Author Share Posted February 27, 2016 local db = dbConnect("sqlite", "database.db") dbExec(db, "CREATE TABLE IF NOT EXISTS `banking`(`id` INT PRIMARY KEY AUTOINCREMENT)") NOT NULL AUTO_INCREMENT and PRIMARY KEY(id) is only for MySQL. So you can't use it. You can use PRIMARY KEY AUTOINCREMENT instead of them. still getting error ----------------------------------------->> -- Grand Theft International (GTi) -- Author: JT Pennington (JTPenn) -- Date: 29 Aug 2014 -- Resource: GTIbank/database.slua -- Version: 1.0 ----------------------------------------->> local ipairs = ipairs local type = type local tonumber = tonumber local SERVER_PORT = 22003 -- Only Save Data on Dev Server local db = dbConnect("sqlite", "database.db") dbExec(db, "CREATE TABLE IF NOT EXISTS `banking`(`id` INT PRIMARY KEY AUTOINCREMENT)") local database_online -- Is banking Database Online? local banking = {} -- 'banking' Database Cache addEvent("onDatabaseLoad", true) -- Triggers when gti database is ready addEvent("onLogDatabaseLoad", true) -- Triggers when log database is ready -- Database Cache ------------------>> addEventHandler("onResourceStart", resourceRoot, function() dbQuery(cacheDatabase, db, "SELECT * FROM `banking`") end) function cacheDatabase(qh) local result = dbPoll(qh, 0) banking["Console"] = {} for i,row in ipairs(result) do banking[row.name] = {} for column,value in pairs(row) do if (column ~= "id" or column ~= "name") then banking["Console"][column] = true if (value == "true") then value = true end if (value == "false") then value = false end banking[row.name][column] = value end end end database_online = true triggerEvent("onDatabaseLoad", resourceRoot, "banking") end -- Banking Data Exports ------------------------>> function setBankData(account, key, value) if (not database_online) then return false end if (not account or not key) then return false end if (isGuestAccount(account) or type(key) ~= "string") then return false end local account = getAccountName(account) if (type(banking[account]) ~= "table") then banking[account] = {} if (getServerPort() == SERVER_PORT) then dbExec(db, "INSERT INTO `banking`(name) VALUES(?)", account) end end if (banking["Console"][key] == nil) then if (getServerPort() == SERVER_PORT) then dbExec(db, "ALTER TABLE `banking` ADD `??` text", key) end banking["Console"][key] = true end banking[account][key] = value if (getServerPort() == SERVER_PORT) then if (value ~= nil) then dbExec(db, "UPDATE `banking` SET `??`=? WHERE name=?", key, tostring(value), account) else dbExec(db, "UPDATE `banking` SET `??`=NULL WHERE name=?", key, account) end end return true end function getBankData(account, key) if (not database_online) then return end if (not account or not key) then return end if (isGuestAccount(account) or type(key) ~= "string") then return end local account = getAccountName(account) if (banking[account] == nil) then return end if (banking[account][key] == nil or banking[account][key] == "nil") then return end if (key == "pin" or key == "acc_number") then return banking[account][key] end return tonumber(banking[account][key]) or banking[account][key] end addEvent("onAccountDelete") addEventHandler("onAccountDelete", root, function(account) dbExec(db, "DELETE FROM `banking` WHERE name=?", account) banking[account] = nil end) -- Transaction Log ------------------->> local dbLogs = dbConnect("sqlite", "transaction.db") function addLogToDatabase(category, timestamp, text, cash, balance, player, account) dbExec(dbLogs, "CREATE TABLE IF NOT EXISTS `log_"..category.."`(id INT NOT NULL AUTO_INCREMENT, timestamp INT, text TEXT, cash INT, balance INT, player TEXT, account TEXT, ip TEXT, serial TEXT, PRIMARY KEY(id))") local serial, ip if (isElement(player)) then serial = getPlayerSerial(player) ip = getPlayerIP(player) player = getPlayerName(player) end dbExec(dbLogs, "INSERT INTO `log_"..category.."`(timestamp, text, cash, balance, player, account, ip, serial) VALUES(?, ?, ?, ?, ?, ?, ?, ?)", timestamp, text, cash, balance, player, account, ip, serial) return true end function getAccountLogs(player, account, data_table, recovery) if (not player or not account or not data_table) then return false end if (data_table ~= "bank" and data_table ~= "cash" and data_table ~= "groupbank") then return false end if ( recovery ) then dbQuery(recoveryCallback, {player, data_table}, dbLogs, "SELECT * FROM `log_"..data_table.."` WHERE `account`=? ORDER BY `timestamp` DESC LIMIT 500", account) else dbQuery(returnDatabase, {player, data_table}, dbLogs, "SELECT * FROM `log_"..data_table.."` WHERE `account`=? ORDER BY `timestamp` DESC LIMIT 250", account) end end function returnDatabase(qh, player, data_table) local result = dbPoll(qh, 0) triggerEvent("onLogDatabaseLoad", player, data_table, result) end addEvent("onAccountDelete") addEventHandler("onAccountDelete", root, function(account) dbExec(dbLogs, "DELETE FROM `log_bank` WHERE account=?", account) dbExec(dbLogs, "DELETE FROM `log_cash` WHERE account=?", account) end) function getDatabaseLogs() return dbLogs end Errors Screenshot Link to comment
ozulus Posted February 27, 2016 Share Posted February 27, 2016 Try that. dbExec(db, "CREATE TABLE IF NOT EXISTS `banking`(`id` INTEGER PRIMARY KEY AUTOINCREMENT)") Link to comment
BluntZ Posted February 27, 2016 Author Share Posted February 27, 2016 Try that. dbExec(db, "CREATE TABLE IF NOT EXISTS `banking`(`id` INTEGER PRIMARY KEY AUTOINCREMENT)") Still getting this error Please someone help http://prntscr.com/a8nix2 Link to comment
ozulus Posted February 27, 2016 Share Posted February 27, 2016 There is no such column named "name" dbExec(db, "CREATE TABLE IF NOT EXISTS `banking`(`id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` TEXT)") -- [b]edited take it again[/b] Link to comment
KariiiM Posted March 1, 2016 Share Posted March 1, 2016 I am sure the owner of this script just used ALTER to add "name" column. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now