godking.conn 是一个基于 ADO / ADOX 的 多数据库统一操作类,支持 SQL Server / Access / Excel / MySQL / SQLite / Oracle / PostgreSQL / Cache 等数据源。
封装了 连接管理、SQL 执行、记录集操作、存储过程、事务、批量插入、元数据查询 等完整能力。
🎯 设计哲学: 在 ADO 原生灵活性的基础上,提供 统一、简洁、安全的 API,并内置 SQL 格式化引擎(支持 ? / @ / ?? 占位符),
极大降低 SQL 拼接的复杂度和注入风险。同时支持 记录集对象 (myrs) 的便捷操作,让数据访问更优雅。
🧱 架构 · 类层次
class godking.conn {
— connection (ADODB.Connection), catalog (ADOX.Catalog)
— open, close, getError
— exec, query, getTable, getRows, rs, each
— createCommand, beginTrans, commitTrans, rollbackTrans
— getTableNames, existsTable, truncateTable, dropTempTable
— findTableObject, findProcedureObject, eachTableObject
— insertByTable (批量插入)
— format, escape, escapeId (SQL 格式化工具)
}
class conn.myrs {
— rs_object (ADODB.RecordSet)
— Eof, Bof, RecordCount, PageCount, PageSize, Position
— Move, MoveFirst, MoveNext, MovePrevious, MoveLast
— getValue, setValue, getType, getName, getDefinedSize
— getTable, getPageTable, getNextRecordset
— AddNew, UpDate, GetRows, Close
}
class conn.Command {
— commandText, commandType, parameters
— exec, executeNoRecords, executeStream
— getTable, getRows, query, each
— addParameter, bind
}
⚡ 功能全景
🔌 多数据源连接
统一 API 连接 SQL Server / Access / Excel / MySQL / SQLite / Oracle / PostgreSQL / Cache,支持 自定义连接串。
8+ 数据源ODBC/OLEDB统一接口
📝 SQL 格式化引擎
支持 ? (值转义) 、?? (标识符转义) 、@name (命名参数) 、@keys/@values 批量占位符,自动防注入。
防注入命名参数批量占位
📊 查询与结果集
query/getTable 返回字典/数组数组,getRows 按列返回,rs 返回可操作的记录集对象,支持分页、迭代。
多格式结果分页迭代器
⚙️ 命令与存储过程
createCommand 创建命令对象,支持 存储过程调用、参数绑定 (输入/输出/返回值),bind 批量绑定。
存储过程参数绑定输出参数
📦 批量操作
insertByTable 支持 500 条批量插入(自动事务),exec 返回影响行数,truncateTable 快速清表。
批量插入事务影响行数
🔍 元数据与结构
通过 ADOX.Catalog 获取 表列表、字段信息、存储过程列表,支持 existsTable / findTableObject。
ADOX表结构字段信息
🔄 事务与错误
beginTrans / commitTrans / rollbackTrans 完整事务支持,getError 获取详细错误信息。
事务回滚错误捕获
🧰 工具函数
escape / escapeId 安全转义,dropTempTable 清理临时表,getRowCount 快速取影响行数。
转义临时表工具集
📌 版本迭代 · 关键里程碑
| 版本 | 日期 | 核心更新 |
| 2.1 | — | 修正读取 xlsx 文件失败问题 |
| 2.2 | — | 增加 rs.AbsolutePosition 属性 |
| 2.3 | — | exec 增加返回值:影响行数 |
| 2.4 | — | 优化 rs 记录集对象操作 |
| 2.6 | — | 增加 getError() 函数 |
| 2.7 | — | SQLite 数据库文件不存在则创建,优化格式化参数 |
| 2.8 | — | 优化调整字段类型命名及智能提示 |
| 2.9 | — | 解决 io.open() 导致 SQLite 连接失败问题 |
| 3.0 | — | 建议升级 SQLite 驱动,解决中文路径问题 |
| 3.1 | — | format() 占位符优化,openAccess() 支持创建空数据库 |
| 3.2 | — | 优化 openMysql() 连接参数 |
| 3.3 | — | 格式化参数支持 @keys 和 @values |
| 3.4 | — | 增加 insertByTable() 函数 |
| 3.5 | — | createCommand().getParameterType() 参数为空时修复 |
| 3.6 | — | 增加 openOracle() / openPostgreSQL() 连接函数 |
| 3.7 | — | addParameter() 增加 数据类型 参数 |
| 3.8 | 2026-05-12 | 修改 getRows() 等相关函数的 @ 属性为表成员方式,便于调试 |
🌟 亮点与设计优势
- 统一 API,多库适配 —— 一套代码操作 SQL Server / MySQL / SQLite / Access / Excel 等,切换数据源只需换连接函数。
- 强大的 SQL 格式化 —— 支持 ? (值转义) 、?? (标识符转义) 、@name (命名参数) 、@keys/@values (批量键值),自动防 SQL 注入。
- 批量插入优化 —— insertByTable 自动分 500 条一批,带事务,适合大数据量导入。
- 记录集增强 (myrs) —— 在原生 ADO 基础上增加 getTable、getPageTable、getValue / setValue 便捷方法,支持分页。
- 存储过程友好 —— createCommand 自动识别存储过程,支持 bind 批量绑定参数,支持输出参数和返回值。
- 元数据与结构探索 —— 通过 ADOX 获取表/字段/存储过程信息,支持 existsTable / findTableObject。
- 事务与错误处理 —— 完整事务支持,getError 返回详细错误描述,便于调试。
- 轻量且高效 —— 基于 ADO 原生 COM 组件,性能稳定,封装薄,几乎无额外开销。
📘 典型调用示例
var conn = godking.conn.openSqlite3("data.db");
conn.exec("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)");
conn.exec("INSERT INTO users(name, age) VALUES(?, ?)", "张三", 25);
conn.exec("INSERT INTO users(@keys) VALUES(@values)", { name="李四", age=30 });
var data = conn.query("SELECT * FROM users WHERE age > ?", 20);
for i,row in data {
io.print(row.name, row.age);
}
var rs = conn.rs("SELECT * FROM users");
while(!rs.Eof) {
io.print(rs.getValue("name"), rs.getValue("age"));
rs.MoveNext();
}
rs.close();
var list = { {name="王五", age=28}, {name="赵六", age=32} };
list.fields = {"name", "age"};
conn.insertByTable("users", null, list);
conn.beginTrans();
conn.exec("UPDATE users SET age = age + 1");
conn.commitTrans();
conn.close();
📋 核心 API 速览
🔌 连接函数
open(connStr)
openSqlServer(ip,port,db,user,pwd)
openAccess(file,pwd,autocreate)
openExcel(file,hdr)
openMysql(ver,ip,port,db,user,pwd)
openSqlite3(file)
openOracle(Server,user,pwd)
openPostgreSQL(Server,db,port,user,pwd)
📝 SQL 格式化
format(sql, params) — 格式化 SQL
escape(v) — 值转义 (字符串/数字/日期/buffer/数组)
escapeId(v) — 标识符转义 ([字段名])
? 占位符 → escape
?? 占位符 → escapeId
@name 命名参数 → escape
@keys / @values 批量键值
🎯 典型应用场景
📊 数据导出/导入
📈 报表数据查询
🧾 批量数据处理
📋 Excel 数据读取
🔢 SQLite 本地存储
📂 Access 桌面应用
🔄 数据迁移工具
📎 存储过程调用
🛠️ 数据库管理工具
📌
综合评价
godking.conn 是 Aardio 生态中 最全面、最易用 的数据库操作封装之一。
它基于 ADO 原生组件,提供了 统一的多数据库访问接口,并内置了 强大的 SQL 格式化引擎,有效防止注入。
从 简单查询 到 批量操作、存储过程、事务管理,覆盖了日常开发中 90% 以上的数据库交互场景。
代码风格清晰,文档详尽,是 桌面应用、数据工具、自动化脚本 中数据库操作的理想选择。
👍 多库支持
👍 防注入
👍 批量操作
👍 持续迭代