使用ADO.h ADO.cpp 出现error C2872错误的解决方案

/*****************    http://blog.csdn.net/elysium    *************************/

ado.h,ado.cpp等是一个ado封装类 ,较容易使用,流传很广

但是在工程应用或封装为动态库时经常会出现:

:error   C2872:   'DataTypeEnum'   :   ambiguous   symbol

:   error   C2872:   'ParameterDirectionEnum'   :   ambiguous   symbol  

等类似错误,网上给出的一些解决方法都是治标不治本,比如使用namespace ,

rename("DataTypeEnum","adoDataTypeEnum"),在DataTypeEnum前使用ADODB::域引用等.

error C2872错误,究其根本是该类型同名出现多个数据库类下,所以我们只要把不需要的数据库支持类去掉即可,经过察看stdafx.h头文件,发现在里面默认启动了MFC DAO数据库类支持,而该类里面同时定义了与ADO类相同的枚举类型等定义,

因此注释掉stdafx.h里面的dao包含文件即可:

//#ifndef _AFX_NO_DAO_SUPPORT
//#include <afxdao.h>   // MFC DAO database classes
//#endif // _AFX_NO_DAO_SUPPORT

你可能感兴趣的:(DAO,c,数据库,database,mfc)