mirror of
https://github.com/holub/mame
synced 2025-10-04 16:34:53 +03:00
plugins/data: don't pollute the namespace and use emu.print_error (nw)
This commit is contained in:
parent
cea7ff08ac
commit
380bff2202
@ -1,6 +1,6 @@
|
||||
-- get marp high score file from http://replay.marpirc.net/txt/scores3.htm
|
||||
local dat = {}
|
||||
local db, sql = require("data/database")()
|
||||
local db = require("data/database")
|
||||
local ver, info
|
||||
|
||||
local function init()
|
||||
@ -17,9 +17,9 @@ local function init()
|
||||
end
|
||||
end
|
||||
|
||||
local stmt = db:prepare("SELECT version FROM version WHERE datfile = ?")
|
||||
local stmt = db.prepare("SELECT version FROM version WHERE datfile = ?")
|
||||
stmt:bind_values(file)
|
||||
if stmt:step() == sql.ROW then
|
||||
if stmt:step() == db.ROW then
|
||||
dbver = stmt:get_value(0)
|
||||
end
|
||||
stmt:finalize()
|
||||
@ -31,10 +31,10 @@ local function init()
|
||||
elseif not fh then
|
||||
return
|
||||
elseif not dbver then
|
||||
db:exec("CREATE TABLE \"" .. file .. [[" (
|
||||
db.exec("CREATE TABLE \"" .. file .. [[" (
|
||||
romset VARCHAR NOT NULL,
|
||||
data CLOB NOT NULL)]])
|
||||
db:exec("CREATE INDEX \"romset_" .. file .. "\" ON \"" .. file .. "_idx\"(romset)")
|
||||
db.exec("CREATE INDEX \"romset_" .. file .. "\" ON \"" .. file .. "_idx\"(romset)")
|
||||
end
|
||||
|
||||
for line in fh:lines() do
|
||||
@ -56,11 +56,11 @@ local function init()
|
||||
end
|
||||
|
||||
if dbver then
|
||||
db:exec("DELETE FROM \"" .. file .. "\"")
|
||||
db:exec("DELETE FROM \"" .. file .. "_idx\"")
|
||||
stmt = db:prepare("UPDATE version SET version = ? WHERE datfile = ?")
|
||||
db.exec("DELETE FROM \"" .. file .. "\"")
|
||||
db.exec("DELETE FROM \"" .. file .. "_idx\"")
|
||||
stmt = db.prepare("UPDATE version SET version = ? WHERE datfile = ?")
|
||||
else
|
||||
stmt = db:prepare("INSERT INTO version VALUES (?, ?)")
|
||||
stmt = db.prepare("INSERT INTO version VALUES (?, ?)")
|
||||
end
|
||||
stmt:bind_values(ver, file)
|
||||
stmt:step()
|
||||
@ -68,7 +68,7 @@ local function init()
|
||||
|
||||
fh:seek("set")
|
||||
local buffer = fh:read("a")
|
||||
db:exec("BEGIN TRANSACTION")
|
||||
db.exec("BEGIN TRANSACTION")
|
||||
|
||||
local function gmatchpos()
|
||||
local pos = 1
|
||||
@ -102,25 +102,23 @@ local function init()
|
||||
end
|
||||
|
||||
for set, data in gmatchpos() do
|
||||
stmt = db:prepare("INSERT INTO \"" .. file .. "\" VALUES (?, ?)")
|
||||
stmt = db.prepare("INSERT INTO \"" .. file .. "\" VALUES (?, ?)")
|
||||
stmt:bind_values(set, data)
|
||||
stmt:step()
|
||||
stmt:finalize()
|
||||
end
|
||||
fh:close()
|
||||
db:exec("END TRANSACTION")
|
||||
db.exec("END TRANSACTION")
|
||||
end
|
||||
|
||||
if db then
|
||||
init()
|
||||
end
|
||||
init()
|
||||
|
||||
function dat.check(set, softlist)
|
||||
if softlist or not ver or not db then
|
||||
if softlist or not ver then
|
||||
return nil
|
||||
end
|
||||
info = nil
|
||||
local stmt = db:prepare("SELECT data FROM \"scores3.htm\" AS f WHERE romset = ?")
|
||||
local stmt = db.prepare("SELECT data FROM \"scores3.htm\" AS f WHERE romset = ?")
|
||||
stmt:bind_values(set)
|
||||
if stmt:step() == sql.ROW then
|
||||
info = "#j2\n" .. stmt:get_value(0)
|
||||
|
@ -2,9 +2,9 @@ local sql = require("lsqlite3")
|
||||
local datfile = {}
|
||||
local db
|
||||
|
||||
function check_db(msg)
|
||||
if db:errcode() > sqlite3.OK then
|
||||
io.stderr:write("Error: " .. msg .. " (" .. db:errcode() .. " - " .. db:errmsg() .. ")\n")
|
||||
local function check_db(msg)
|
||||
if db:errcode() > sql.OK then
|
||||
emu.print_error("Error: " .. msg .. " (" .. db:errcode() .. " - " .. db:errmsg() .. ")\n")
|
||||
end
|
||||
end
|
||||
|
||||
@ -31,4 +31,7 @@ if db then
|
||||
end
|
||||
end
|
||||
|
||||
return function() return db, sql end
|
||||
local dbtable = { prepare = function(...) return db:prepare(...) end,
|
||||
exec = function(...) return db:exec(...) end, ROW = sql.ROW, check = check_db }
|
||||
|
||||
return db and dbtable or nil
|
||||
|
@ -1,5 +1,5 @@
|
||||
local datfile = {}
|
||||
local db, sql = require("data/database")()
|
||||
local db = require("data/database")
|
||||
|
||||
function datfile.open(file, vertag, fixupcb)
|
||||
if not db then
|
||||
@ -7,11 +7,11 @@ function datfile.open(file, vertag, fixupcb)
|
||||
end
|
||||
local function read(tag1, tag2, set)
|
||||
local data
|
||||
local stmt = db:prepare("SELECT f.data FROM \"" .. file .. "_idx\" AS fi, \"" .. file .. [["
|
||||
local stmt = db.prepare("SELECT f.data FROM \"" .. file .. "_idx\" AS fi, \"" .. file .. [["
|
||||
AS f WHERE fi.type = ? AND fi.val = ? AND fi.romset = ? AND f.rowid = fi.data]])
|
||||
check_db("reading " .. tag1 .. " - " .. tag2 .. " - " .. set)
|
||||
db.check("reading " .. tag1 .. " - " .. tag2 .. " - " .. set)
|
||||
stmt:bind_values(tag1, tag2, set)
|
||||
if stmt:step() == sql.ROW then
|
||||
if stmt:step() == db.ROW then
|
||||
data = stmt:get_value(0)
|
||||
end
|
||||
stmt:finalize()
|
||||
@ -32,10 +32,10 @@ function datfile.open(file, vertag, fixupcb)
|
||||
-- remove unsafe chars from file for use in sql statement
|
||||
file = file:gsub("[^%w%._]", "")
|
||||
|
||||
local stmt = db:prepare("SELECT version FROM version WHERE datfile = ?")
|
||||
check_db("reading version")
|
||||
local stmt = db.prepare("SELECT version FROM version WHERE datfile = ?")
|
||||
db.check("reading version")
|
||||
stmt:bind_values(file)
|
||||
if stmt:step() == sql.ROW then
|
||||
if stmt:step() == db.ROW then
|
||||
dbver = stmt:get_value(0)
|
||||
end
|
||||
stmt:finalize()
|
||||
@ -46,16 +46,16 @@ function datfile.open(file, vertag, fixupcb)
|
||||
elseif not fh then
|
||||
return nil
|
||||
elseif not dbver then
|
||||
db:exec("CREATE TABLE \"" .. file .. [[_idx" (
|
||||
db.exec("CREATE TABLE \"" .. file .. [[_idx" (
|
||||
type VARCHAR NOT NULL,
|
||||
val VARCHAR NOT NULL,
|
||||
romset VARCHAR NOT NULL,
|
||||
data INTEGER NOT NULL)]])
|
||||
check_db("creating index")
|
||||
db:exec("CREATE TABLE \"" .. file .. "\" (data CLOB NOT NULL)")
|
||||
check_db("creating table")
|
||||
db:exec("CREATE INDEX \"typeval_" .. file .. "\" ON \"" .. file .. "_idx\"(type, val)")
|
||||
check_db("creating typeval index")
|
||||
db.check("creating index")
|
||||
db.exec("CREATE TABLE \"" .. file .. "\" (data CLOB NOT NULL)")
|
||||
db.check("creating table")
|
||||
db.exec("CREATE INDEX \"typeval_" .. file .. "\" ON \"" .. file .. "_idx\"(type, val)")
|
||||
db.check("creating typeval index")
|
||||
end
|
||||
|
||||
if vertag then
|
||||
@ -76,15 +76,15 @@ function datfile.open(file, vertag, fixupcb)
|
||||
end
|
||||
|
||||
if dbver then
|
||||
db:exec("DELETE FROM \"" .. file .. "\"")
|
||||
check_db("deleting")
|
||||
db:exec("DELETE FROM \"" .. file .. "_idx\"")
|
||||
check_db("deleting index")
|
||||
stmt = db:prepare("UPDATE version SET version = ? WHERE datfile = ?")
|
||||
check_db("updating version")
|
||||
db.exec("DELETE FROM \"" .. file .. "\"")
|
||||
db.check("deleting")
|
||||
db.exec("DELETE FROM \"" .. file .. "_idx\"")
|
||||
db.check("deleting index")
|
||||
stmt = db.prepare("UPDATE version SET version = ? WHERE datfile = ?")
|
||||
db.check("updating version")
|
||||
else
|
||||
stmt = db:prepare("INSERT INTO version VALUES (?, ?)")
|
||||
check_db("inserting version")
|
||||
stmt = db.prepare("INSERT INTO version VALUES (?, ?)")
|
||||
db.check("inserting version")
|
||||
end
|
||||
stmt:bind_values(ver, file)
|
||||
stmt:step()
|
||||
@ -94,8 +94,8 @@ function datfile.open(file, vertag, fixupcb)
|
||||
local inblock = false
|
||||
fh:seek("set")
|
||||
local buffer = fh:read("a")
|
||||
db:exec("BEGIN TRANSACTION")
|
||||
check_db("beginning transaction")
|
||||
db.exec("BEGIN TRANSACTION")
|
||||
db.check("beginning transaction")
|
||||
local function gmatchpos()
|
||||
local pos = 1
|
||||
local function iter()
|
||||
@ -136,8 +136,8 @@ function datfile.open(file, vertag, fixupcb)
|
||||
if fixupcb then
|
||||
data = fixupcb(data)
|
||||
end
|
||||
stmt = db:prepare("INSERT INTO \"" .. file .. "\" VALUES (?)")
|
||||
check_db("inserting values")
|
||||
stmt = db.prepare("INSERT INTO \"" .. file .. "\" VALUES (?)")
|
||||
db.check("inserting values")
|
||||
stmt:bind_values(data)
|
||||
stmt:step()
|
||||
local row = stmt:last_insert_rowid()
|
||||
@ -147,8 +147,8 @@ function datfile.open(file, vertag, fixupcb)
|
||||
if fixupcb then
|
||||
fixupcb(data)
|
||||
end
|
||||
stmt = db:prepare("INSERT INTO \"" .. file .. "_idx\" VALUES (?, ?, ?, ?)")
|
||||
check_db("inserting into index")
|
||||
stmt = db.prepare("INSERT INTO \"" .. file .. "_idx\" VALUES (?, ?, ?, ?)")
|
||||
db.check("inserting into index")
|
||||
stmt:bind_values(tag1, tag2, set, row)
|
||||
stmt:step()
|
||||
stmt:finalize()
|
||||
@ -157,8 +157,8 @@ function datfile.open(file, vertag, fixupcb)
|
||||
end
|
||||
end
|
||||
end
|
||||
db:exec("END TRANSACTION")
|
||||
check_db("ending transaction")
|
||||
db.exec("END TRANSACTION")
|
||||
db.check("ending transaction")
|
||||
end
|
||||
fh:close()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user