我是第一次在.NET 2003 下用VC操作ADO,可是编译就没有通过,向各位请教!
问题如下:
在加入#import "C:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF","adoEOF")后,编译出现错误,错误为(两个):
D:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\comdef.h(307): error C2882: “Font” : 在表达式中非法使用命名空间标识符
D:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\comdef.h(307): error C3203: “_com_IIID” : 类模板作为模板参数“_IIID”的模板参数无效,应输入 real 类型
谢谢各位帮助!
问题如下:
在加入#import "C:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF","adoEOF")后,编译出现错误,错误为(两个):
D:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\comdef.h(307): error C2882: “Font” : 在表达式中非法使用命名空间标识符
D:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\comdef.h(307): error C3203: “_com_IIID” : 类模板作为模板参数“_IIID”的模板参数无效,应输入 real 类型
谢谢各位帮助!
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
2。app文件的InitInstance中加入
if(S_OK!=OleInitialize(NULL))
{
AfxMessageBox("初始化COM组件库错误");
}
下面就是数据库操作
_ConnectionPtr pConn;
_RecordsetPtr pRs;
CString strSQL;
pConn.CreateInstance(__uuidof(Connection));
pConn->CursorLocation=adUseClient;
strSQL="Provider=SQLOLEDB;Server=Gooyan;DataBase=SkillsBox;UID=sa;PWD=aaaaaaaa";
pConn->Open(_bstr_t(strSQL),"","",-1);pRs.CreateInstance(__uuidof(Recordset));
pRs->CursorLocation=adUseClient;
pRs->PutActiveConnection(pConn.GetInterfacePtr());pRs1.CreateInstance(__uuidof(Recordset));
pRs1->CursorLocation=adUseClient;
pRs1->PutActiveConnection(pConn.GetInterfacePtr());strSQL="select * from catalog order by cataid";
pRs->Open(_bstr_t(strSQL),vtMissing,adOpenDynamic,adLockBatchOptimistic,adCmdText);
这个问题我已经解决:
因为我是用自行开发的图形界面库,没有用MFC等,且在自己的库中定义了一个Font名字空间,所以产生了如上所示的错误,第二个错误是因第一个引起。我把自己的库中Font的名字空间改为WinFont后就正常了!