问题
数据库DAO3.6接口被废弃。在DAO不能使用之前,寻找出替代方案。
写作时间
Zilu ZHENG 10/06/2020
摘要
本文详细解释了现有程序使用的数据库和接口。给出了解决这个问题的两大步骤,寻找与CDAO功能类似的库,更换底层的文件系统Access。但是现阶段无法找到与CDAO功能完全一致的库。ODBC接口无法完全覆盖CDAO的功能。ACEDAO接口可以覆盖CDAO,但需要函数方法的使用不一致需要转换,说明文档是VB,使用不方便。
环境描述
程序是C++程序,x86环境(未来不会升级x64),使用MFC库作为共享库(不能使用静态库),
问题的解释
下面会解释数据库文件系统,数据库接口,数据库引擎的关系,以及接口被废弃后带来的影响。
关于数据库Access
程序使用Microsoft Access 1995(.mdb)作为本地数据库(无服务器,不需要联网)。用于存储一些声学的数据,同时需要存储树状结构的关系。本地数据库是为了方便管理数据,用于替代文件系统。不能使用需要配置服务器的数据库比如MySQL。数据库文件要尽可能的小,不需要用户配置。数据库文件的生成,修改应该是可以自动化的。
目前,最新的Access采用accdb文件系统。
关于数据库接口DAO
为了访问Access的数据,程序使用DAO接口。DAO接口是Microsoft设计,用来专门访问Access的接口。最新版的DAO是3.6版本。目前,已被弃用。目前,已被ACEDAO替代。与DAO可以比较的,访问数据库的接口,同时还有ODBC,O