作者:吉尔伽美什2702933250 | 来源:互联网 | 2023-05-17 12:04
使用VS2010和sql2008数据库,使用ado2类开发应用程序,编译时提示如下错误,如何解决????>\msjro.tlh(196):errorC2146:语法错误:缺少“;”(
使用VS2010和sql2008数据库,使用ado2 类开发应用程序,编译时提示如下错误,如何解决????
>\msjro.tlh(196): error C2146: 语法错误: 缺少“;”(在标识符“ConflictTables”的前面)
\msjro.tlh(196): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
\msjro.tlh(196): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
\msjro.tlh(224): error C2146: 语法错误: 缺少“;”(在标识符“GetConflictTables”的前面)
\msjro.tlh(224): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
\msjro.tlh(224): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
\msjro.tlh(224): warning C4183: “GetConflictTables”: 缺少返回类型;假定为返回“int”的成员函数
\msjro.tli(111): error C2143: 语法错误 : 缺少“;”(在“IReplica::GetConflictTables”的前面)
\msjro.tli(111): error C2433: “_RecordsetPtr”: 不允许在数据声明中使用“inline”
\msjro.tli(111): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
\msjro.tli(111): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
\msjro.tli(115): error C2064: 项不会计算为接受 2 个参数的函数
\ado2.h(145): error C2872: “_RecordsetPtr”: 不明确的符号
我用ado.h ado.cpp,从我现在查到的信息来看应该是msado15.dll和msjro.dll问题,XP系统,求解释
我是添加ADO.H,,,ADO.CPP类库来调用数据库,#import路径就在ADO.H中。以前一直用的好好地。最近才出的问题
6 个解决方案
求各位懂得帮忙啊,为这问题纠结好几天了。 ado.h,,,,,ado.cpp,,,,
使用ADO前必须在工程的stdafx.h头文件里用直接引入符号#import引入ADO库文件,以使编译器能正确编译。代码如下所示:
用#import引入ADO库文件
#import "c:\program files\common files\system\ado\msado15.dll"no_namespaces rename("EOF" adoEOF")
这行语句声明在工程中使用ADO,但不使用ADO的名字空间,并且为了避免常数冲突,将常数EOF改名为adoEOF。现在不需添加另外的头文件,就可以使用ADO接口了。
编译错误:
c:\wpds\debug\msjro.tlh(196): error C2146: syntax error : missing ';' before identifier 'ConflictTables'
或
c:\wpds\debug\msjro.tlh(196): error C2146: 语法错误: 缺少“;”(在标识符“ConflictTables”的前面)
解决:
1. 如果只是用 ADO 不用 Jet 的话,可不 import MSJRO.DLL 模块,将 CJetEngine 相关代码注释掉即可。
2. 将 using namespace ADODB; 放在 import MSJRO.DLL 之前,如:
#import "C:\Program Files\Common Files\System\ado\msado15.dll" rename("EOF", "EndOfFile")
using namespace ADODB;
#import "C:\Program Files\Common Files\System\ado\MSJRO.DLL" no_namespace rename("ReplicaTypeEnum", "_ReplicaTypeEnum")