SQL API (QueryManager)¶
GetConnection(connectionName)¶
获取或创建命名数据库连接(按 Lua 状态缓存)。
- 返回值:
QueryManager
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()
Help