用 C++操作 Access 数据库的时候,直接拿 ADO 来搞是挺方便的一种方式。这个小实例就教你怎么用 ADO 拉取 Access 数据库里所有的视图和基本表,适合用 Visual Studio 搞开发的朋友。

ADO 的统一接口让你不用太纠结底层细节,连 Access 都能轻松拿下。你只要创建个 Connection 对象,把数据库路径丢进去,连上之后直接查系统表就行,挺。

要拿视图数据,你可以用 MSysObjects 这个系统表,里面Type=5的是视图,Type=1的是基本表。用 Execute 方法执行 SQL 就能拿到元数据,用 Recordset 对象去遍历。

比如下面这段代码就能查出所有视图:

pConnection->Execute(L"SELECT * FROM MSysObjects WHERE Type=5 ORDER BY Name", NULL, ADO::adCmdText, &pRecordset);

用个 while 循环每一条记录,用 GetItem("Name")->Value 拿名字就好了。响应也快,逻辑也清楚。

建议你在 Visual Studio .NET 环境下调试,断点好设,调变量也方便,开发体验还挺顺的。如果你之前没用过 ADO,刚好这个实例就是个不错的练手机会。

对了,操作完别忘了 Close 连接,还要 CoUninitialize(),不然资源没释放,搞久了容易出问题。

如果你想更深入了解,可以顺便看看这些相关的实例和教程:

如果你正好用 C++做点后台工具或者搞点小型数据库管理,这种做法还蛮实用的,推荐你试试看。