certflow.utils.access_db module¶
Access 数据库操作模块
用于连接和查询 Access 数据库(.mdb/.accdb), 独立于主 SQLite 数据库,专门处理铭牌数据。
控制方式(优先级从高到低): 1. 环境变量 CERTFLOW_ENABLE_ACCESS_EXPORT=true 强制启用 2. 配置文件 config.yaml → export.access.enabled: true 3. 以上均未设置时默认禁用
- certflow.utils.access_db.is_access_enabled()[源代码]¶
检查 Access 功能是否启用
优先级:环境变量 > 配置文件 > 默认禁用
- 返回:
True 如果 Access 功能已启用
- 返回类型:
- class certflow.utils.access_db.AccessDatabase(db_path, max_retries=3, keep_alive=True)[源代码]¶
基类:
objectAccess 数据库管理器
专门用于连接和查询 Access 数据库,独立于主 SQLite 数据库。 支持连接复用,避免频繁开关连接。
示例
>>> # 推荐:使用上下文管理器(自动管理连接) >>> with get_access_db() as db: ... records = db.search(customer="宁波大隆")
>>> # 或:获取全局单例(保持连接) >>> db = get_access_db() >>> records = db.search(customer="宁波大隆")
- get_signed_records(top_n=10)[源代码]¶
查询已刻印的记录
- 参数:
top_n (int) -- 返回的记录数,默认为 10。
- 返回:
已刻印记录的 DataFrame,按 ID 降序排列。
- 返回类型:
pd.DataFrame
- get_by_id(record_id)[源代码]¶
根据ID查询记录
- 参数:
record_id (int) -- 记录的主键 ID。
- 返回:
匹配记录的 DataFrame。
- 返回类型:
pd.DataFrame
- search(customer=None, project=None, model=None, sn=None, signed=None)[源代码]¶
多条件搜索
- 参数:
- 返回:
符合所有条件的记录 DataFrame,按 ID 降序排列。
- 返回类型:
pd.DataFrame
- class certflow.utils.access_db.AccessDatabaseManager[源代码]¶
基类:
objectAccess 数据库连接管理器(单例模式)
管理全局唯一的数据库连接实例,避免频繁开关连接。
示例
>>> manager = AccessDatabaseManager.get_instance() >>> db = manager.get_connection() >>> records = db.search(customer="宁波")
- 返回类型:
- certflow.utils.access_db.get_access_db()[源代码]¶
获取 Access 数据库连接实例(复用全局连接)
推荐使用此函数获取连接,内部会自动管理连接生命周期。 适用于需要频繁查询的场景。
- 返回:
实例(全局单例)。
- 返回类型:
- 抛出:
ImportError -- Access 功能被配置禁用时抛出。
- certflow.utils.access_db.get_access_db_new()[源代码]¶
获取新的 Access 数据库连接实例(不复用)
适用于短期使用的场景,使用后需要手动关闭或使用上下文管理器。
- 返回:
新的连接实例。
- 返回类型:
- 抛出:
ImportError -- Access 功能被配置禁用时抛出。