警告C4995:'CDaoDatabase':名称被标记为#pragma deprecated

时间:2013-08-19 03:24:46

标签: c++ visual-studio-2008 compiler-construction dao pragma

这是我的代码

   #ifndef FL_PROJECTMNT
   #include <afxdao.h>

   #if ENGLISH
   #define PROJECT      "Project" // Project
   #define NUMBER       "No"
   #define PRJNAME      "Project Name"

   #else
   #define PROJECT  "プロジェクト"
   #define NUMBER   "No"
   #define PRJNAME  "プロジェクト名"

   #endif

   #ifdef ENGLISH
  #define RESBAMELIST      NUMBER,PRJNAME,CNTNAME,TANTOU,PREV,SREV,LASTCTIME,NOTE,DOCNO,PLANTNAME,BUNSATU,MEMTYP,CMPCNT,PLASTCTIME,LINENOCNT,SVCHANGCNT
    #else
    #define RESBAMELIST NUMBER,PRJNAME,CNTNAME,TANTOU,PREV,SREV,LASTCTIME,NOTE,DOCNO,PLANTNAME,BUNSATU,MEMTYP,CMPCNT,PLASTCTIME,LINENOCNT,SVCHANGCNT,USECADINF
   #endif
    class AFX_EXT_CLASS ProjectMnt{
    private:
CDaoDatabase Project;
CDaoRecordset *rec;
int state;
      public:
ProjectMnt();
ProjectMnt(char* strPath);
~ProjectMnt();
int RenewLRDate();
int RenewPLRDate();
int GetProjectInfo(int kind,int size,char *data);
int GetProjectInfo(int kind,long int *data);
int SetProjectInfo(int kind,char* data);
int SetProjectInfo(int kind,long int data);
int GetState(){return state;};      
     };
     #define FL_PROJECTMNT
     #endif

当我在Visual Studio 2008上进行编辑时,会发出此警告,但我无法解决,有些人帮我吗? 警告C4995:'CDaoDatabase':名称标记为#pragma deprecated

2 个答案:

答案 0 :(得分:0)

您不再需要afxdao.h的包含。

只需删除此行即可。

答案 1 :(得分:0)

它表示您使用的是在Visual Studio的未来版本中可能不支持的弃用类型。

DAO似乎已经被微软推荐了很长一段时间。快速谷歌搜索显示人们早在.NET 2003就遇到了问题。显然,他们不希望人们再使用它,而是鼓励他们切换到ADO.NET或其他东西。因此,如果您没有被锁定在DAO中,我建议您探索其他数据库选项。

但是,由于VS 2012甚至2013 Preview的文档中仍然存在CDaoDatabase,我认为如果您真的必须使用DAO,则可以放心地忽略该警告。好像它会被支持一段时间。