跳转至

SQL API (QueryManager)

GetConnection(connectionName)

获取或创建命名数据库连接(按 Lua 状态缓存)。

  • 返回值: QueryManager
local db = GetConnection("GameDB")

QueryManager 方法

方法 说明
Connect(dsn, user, pass) 打开 ODBC 连接
ExecQuery(sql) 执行 SQL 查询
Fetch() 获取下一行结果
Close() 关闭查询(不是关闭连接)
GetResult(column) 按列名获取结果(字符串)
GetStringResult(column) 获取字符串结果
GetAsInteger(column) 获取整型结果
GetAsFloat(column) 获取浮点型结果
GetAsInteger64(column) 获取 64 位整型结果
GetAsString(column) 获取字符串结果(替代方法)
GetAsBinary(column) 获取二进制数据(字符串形式)
BindParameterAsBinary(paramNum, data) 绑定二进制参数
BindParameterAsString(paramNum, data) 绑定字符串参数
-- 示例: 查询玩家数据
local db = GetConnection("GameDB")
db:Connect("MuOnline_GameDB", "sa", "password")
db:ExecQuery("SELECT Reset, MasterReset FROM Character WHERE Name = 'TestChar'")

if db:Fetch() then
    local resets = db:GetAsInteger("Reset")
    local mresets = db:GetAsInteger("MasterReset")
    LogAdd(LOG_BLUE, "Resets: " .. resets .. " MR: " .. mresets)
end

db:Close()