error C2065: “_ConnectionPtr”: 未声明的标识符

nicholas199109 2013-01-16 09:52:12
莫名其妙啊,以前从来没遇到这问题,今天终于碰到了,大家看看我哪里出问题了
1、在stdafx.h 最后包含

#import "c:\program files\common files\system\ado\msado15.dll" named_guids rename_namespace("ADOCG") rename("EOF", "adoEOF") rename("BOF","adoBOF")
using namespace ADOCG

2、然后我自定义了一个类函数

void CIOCPModel::WriteIntoDataBase(CString str1, CString str2)
//str1、str2是传进来的字符串
{
CoInitialize(NULL);
_ConnectionPtr m_pConnection; //连接对象指针
try
{
m_pConnection.CreateInstance("ADODB.Connection"); //创建连接对象实例
bstr_t strConnect="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Modbus_TCP.mdb;Persist Security Info=False";
m_pConnection->Open(strConnect,"","",adModeUnknown); //打开数据库
}
catch (_com_error e) //捕捉错误
{
AfxMessageBox(e.Description());
return;//弹出错误
}
try
{
_bstr_t sql = _T("INSERT INTO message (时间,内容) VALUES (str1,str2)");
m_pConnection->Execute(sql,NULL,adCmdText);
}
catch (_com_error e)
{
AfxMessageBox(e.Description());
return;//弹出错误
}

m_pConnection->Close();
CoUninitialize();
}

3、结果就悲剧了,大家帮我看看是漏了什么还是。。。

错误信息
错误 7 error C2065: “_ConnectionPtr”: 未声明的标识符 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 814 PiggyIOCPServer
错误 8 error C2146: 语法错误 : 缺少“;”(在标识符“m_pConnection”的前面) c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 814 PiggyIOCPServer
错误 9 error C2065: “m_pConnection”: 未声明的标识符 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 814 PiggyIOCPServer
错误 10 error C2065: “m_pConnection”: 未声明的标识符 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 817 PiggyIOCPServer
错误 11 error C2228: “.CreateInstance”的左边必须有类/结构/联合 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 817 PiggyIOCPServer
错误 12 error C2065: “bstr_t”: 未声明的标识符 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 818 PiggyIOCPServer
错误 13 error C2146: 语法错误 : 缺少“;”(在标识符“strConnect”的前面) c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 818 PiggyIOCPServer
错误 14 error C2065: “strConnect”: 未声明的标识符 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 818 PiggyIOCPServer
错误 15 error C2065: “m_pConnection”: 未声明的标识符 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 819 PiggyIOCPServer
错误 16 error C2227: “->Open”的左边必须指向类/结构/联合/泛型类型 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 819 PiggyIOCPServer
错误 17 error C2065: “strConnect”: 未声明的标识符 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 819 PiggyIOCPServer
错误 18 error C2065: “adModeUnknown”: 未声明的标识符 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 819 PiggyIOCPServer
错误 19 error C2061: 语法错误 : 标识符“_com_error” c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 821 PiggyIOCPServer
错误 20 error C2310: catch 处理程序必须指定一种类型 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 821 PiggyIOCPServer
错误 21 error C2065: “e”: 未声明的标识符 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 823 PiggyIOCPServer
错误 22 error C2228: “.Description”的左边必须有类/结构/联合 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 823 PiggyIOCPServer
错误 23 error C2317: 在行“816”上开始的“try”块没有 catch 处理程序 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 826 PiggyIOCPServer
错误 24 error C2065: “_bstr_t”: 未声明的标识符 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 828 PiggyIOCPServer
错误 25 error C2146: 语法错误 : 缺少“;”(在标识符“sql”的前面) c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 828 PiggyIOCPServer
错误 26 error C2065: “sql”: 未声明的标识符 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 828 PiggyIOCPServer
错误 27 error C2065: “m_pConnection”: 未声明的标识符 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 829 PiggyIOCPServer
错误 28 error C2227: “->Execute”的左边必须指向类/结构/联合/泛型类型 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 829 PiggyIOCPServer
错误 29 error C2065: “sql”: 未声明的标识符 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 829 PiggyIOCPServer
错误 30 error C2065: “adCmdText”: 未声明的标识符 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 829 PiggyIOCPServer
错误 31 error C2061: 语法错误 : 标识符“_com_error” c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 831 PiggyIOCPServer
错误 32 error C2310: catch 处理程序必须指定一种类型 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 831 PiggyIOCPServer
错误 33 error C2065: “e”: 未声明的标识符 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 833 PiggyIOCPServer
错误 34 error C2228: “.Description”的左边必须有类/结构/联合 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 833 PiggyIOCPServer
错误 35 error C2317: 在行“827”上开始的“try”块没有 catch 处理程序 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 837 PiggyIOCPServer
错误 36 error C2065: “m_pConnection”: 未声明的标识符 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 837 PiggyIOCPServer
错误 37 error C2227: “->Close”的左边必须指向类/结构/联合/泛型类型 c:\users\asus\desktop\myservice\piggyiocpserver\iocpmodel.cpp 837 PiggyIOCPServer

...全文
1990 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
简书成研 2014-10-21
  • 打赏
  • 举报
回复
#include <afxdisp.h> // MFC 自动化类 #ifndef _AFX_NO_OLE_SUPPORT #include <afxdtctl.h> // MFC 对 Internet Explorer 4 公共控件的支持 #endif #ifndef _AFX_NO_AFXCMN_SUPPORT #include <afxcmn.h> // MFC 对 Windows 公共控件的支持 #endif // _AFX_NO_AFXCMN_SUPPORT #include <afxcontrolbars.h> // 功能区和控件条的 MFC 支持 #include <afxdb.h> #ifdef _UNICODE #if defined _M_IX86 #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") #elif defined _M_X64 #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") #else #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") #endif #import "c:\program files\common files\system\ado\msado15.dll" \ no_namespace \ rename ("EOF", "adoEOF") //using namespace ADODB; #endif 这样 我就没错哦了
Lead_H 2014-05-15
  • 打赏
  • 举报
回复
你确定你在stdafx.h中,不是在.cpp中?如果在H文件中肯定没问题。重新编译生成一次试一下
litachi_422 2013-07-24
  • 打赏
  • 举报
回复
同求呀,我也是写在stdafx.h中却一直报错呀
wangbin_CSDN 2013-06-15
  • 打赏
  • 举报
回复
看看是不是启用了预编译,我今天也是解决这个问题了
nicholas199109 2013-01-16
  • 打赏
  • 举报
回复
引用 1 楼 sha_jinhao 的回复:
// 加入ADO支持库 #import "c:\program files\common files\system\ado\msado15.dll" \ no_namespace \ rename ("EOF", "adoEOF") 以前用VC6写数据库,最近换用VC2010,加入ADO数据支持库后发现_Conn……
我确定百分之百地写在stdafx.h头文件里了,所以应该不是这个问题
jimette 2013-01-16
  • 打赏
  • 举报
回复
// 加入ADO支持库 #import "c:\program files\common files\system\ado\msado15.dll" \ no_namespace \ rename ("EOF", "adoEOF") 以前用VC6写数据库,最近换用VC2010,加入ADO数据支持库后发现_ConnectionPtr、_RecordsetPtr和_CommandPtr标红,无法使用,网上一搜发现很多童鞋遇到这个问题,仔细比对之前的程序才发现然后上面这段程序加到了"staafx.cpp"中了,而其他cpp文件调用的是"stdafx.h"文件,所以把这段程序换到"stdafx.h"文件中,搞定~

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧