SQL语句在Access里面运行正确,在pDb->ExecuteSQL(strSql)运行不正确,为啥?解决思路
SQL语句在Access里面运行正确,在pDb->ExecuteSQL(strSql)运行不正确,为啥?
SELECT DISTINCT 学号, 姓名 INTO newtable FROM sce2007 WHERE 班级 like '231010* '
在access里面运行正确
但是在应用程序里面,只生成表,无记录.....
如果去掉WHERE 子句则可以.............
CString zhuan= "Table "+zhuanye;
CString slike=zhuanye+ "** ";
CDatabase *pDb=new CDatabase;
pDb-> Open( "Appraisement ");
CString strSql= "SELECT DISTINCT 学号, 姓名 INTO "+zhuan+ " FROM sce2007 WHERE 班级 like '231010* ' ";
pDb-> ExecuteSQL(strSql);
UpdateData(false);
pDb-> Close();
还有我在这里添加try catch 语句老是出错,哪位哥哥能给个demo?谢谢
同时请教:
try
{
CString strSql= "SELECT DISTINCT 学号, 姓名 INTO "+zhuan+ " FROM sce2007 ";
pDb-> ExecuteSQL(strSql);
}
catch(CDBException,e)
{
CString strMsg;
strMsg.LoadString(IDS_EXECUTE_SQL_FAILED);
strMsg+=strSql;
}
pDb-> Close();
输出如下:
------ 已启动生成: 项目: Appraisement, 配置: Debug Win32 ------
正在编译...
sNew.cpp
d:\VC work\Appraisement\sNew.cpp(89) : error C2061: 语法错误 : 标识符“e”
d:\VC work\Appraisement\sNew.cpp(89) : error C2316: “CDBException” : 无法作为析构函数捕获,或者复制构造函数不可访问,或同时出现这两种情况
d:\VC work\Appraisement\sNew.cpp(92) : error C2065: “IDS_EXECUTE_SQL_FAILED” : 未声明的标识符
d:\VC work\Appraisement\sNew.cpp(93) : error C2065: “strSql” : 未声明的标识符
d:\VC work\Appraisement\sNew.cpp(93) : error C2593: “operator +=”不明确
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\cstringt.h(1082): 可能是“ATL::CStringT <BaseType,StringTraits> &ATL::CStringT <BaseType,StringTraits> ::operator +=(const VARIANT &)”
with
[
BaseType=char,
StringTraits=StrTraitMFC_DLL <char>
]
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\cstringt.h(1075): 或 “ATL::CStringT <BaseType,StringTraits> &ATL::CStringT <BaseType,StringTraits> ::operator +=(wchar_t)”
with
[
BaseType=char,
StringTraits=StrTraitMFC_DLL <char>
]
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\cstringt.h(1068): 或 “ATL::CStringT <BaseType,StringTraits> &ATL::CStringT <BaseType,StringTraits> ::operator +=(unsigned char)”
with
[
BaseType=char,
StringTraits=StrTraitMFC_DLL <char>
]
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\cstringt.h(1061): 或 “ATL::CStringT <BaseType,StringTraits> &ATL::CStringT <BaseType,StringTraits> ::operator +=(char)”
with
[
BaseType=char,
StringTraits=StrTraitMFC_DLL <char>
]
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\cstringt.h(1054): 或 “ATL::CStringT <BaseType,StringTraits> &ATL::CStringT <BaseType,StringTraits> ::operator +=(ATL::CSimpleStringT <BaseType,t_bMFCDLL> ::PCYSTR)”
SELECT DISTINCT 学号, 姓名 INTO newtable FROM sce2007 WHERE 班级 like '231010* '
在access里面运行正确
但是在应用程序里面,只生成表,无记录.....
如果去掉WHERE 子句则可以.............
CString zhuan= "Table "+zhuanye;
CString slike=zhuanye+ "** ";
CDatabase *pDb=new CDatabase;
pDb-> Open( "Appraisement ");
CString strSql= "SELECT DISTINCT 学号, 姓名 INTO "+zhuan+ " FROM sce2007 WHERE 班级 like '231010* ' ";
pDb-> ExecuteSQL(strSql);
UpdateData(false);
pDb-> Close();
还有我在这里添加try catch 语句老是出错,哪位哥哥能给个demo?谢谢
同时请教:
try
{
CString strSql= "SELECT DISTINCT 学号, 姓名 INTO "+zhuan+ " FROM sce2007 ";
pDb-> ExecuteSQL(strSql);
}
catch(CDBException,e)
{
CString strMsg;
strMsg.LoadString(IDS_EXECUTE_SQL_FAILED);
strMsg+=strSql;
}
pDb-> Close();
输出如下:
------ 已启动生成: 项目: Appraisement, 配置: Debug Win32 ------
正在编译...
sNew.cpp
d:\VC work\Appraisement\sNew.cpp(89) : error C2061: 语法错误 : 标识符“e”
d:\VC work\Appraisement\sNew.cpp(89) : error C2316: “CDBException” : 无法作为析构函数捕获,或者复制构造函数不可访问,或同时出现这两种情况
d:\VC work\Appraisement\sNew.cpp(92) : error C2065: “IDS_EXECUTE_SQL_FAILED” : 未声明的标识符
d:\VC work\Appraisement\sNew.cpp(93) : error C2065: “strSql” : 未声明的标识符
d:\VC work\Appraisement\sNew.cpp(93) : error C2593: “operator +=”不明确
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\cstringt.h(1082): 可能是“ATL::CStringT <BaseType,StringTraits> &ATL::CStringT <BaseType,StringTraits> ::operator +=(const VARIANT &)”
with
[
BaseType=char,
StringTraits=StrTraitMFC_DLL <char>
]
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\cstringt.h(1075): 或 “ATL::CStringT <BaseType,StringTraits> &ATL::CStringT <BaseType,StringTraits> ::operator +=(wchar_t)”
with
[
BaseType=char,
StringTraits=StrTraitMFC_DLL <char>
]
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\cstringt.h(1068): 或 “ATL::CStringT <BaseType,StringTraits> &ATL::CStringT <BaseType,StringTraits> ::operator +=(unsigned char)”
with
[
BaseType=char,
StringTraits=StrTraitMFC_DLL <char>
]
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\cstringt.h(1061): 或 “ATL::CStringT <BaseType,StringTraits> &ATL::CStringT <BaseType,StringTraits> ::operator +=(char)”
with
[
BaseType=char,
StringTraits=StrTraitMFC_DLL <char>
]
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\cstringt.h(1054): 或 “ATL::CStringT <BaseType,StringTraits> &ATL::CStringT <BaseType,StringTraits> ::operator +=(ATL::CSimpleStringT <BaseType,t_bMFCDLL> ::PCYSTR)”