sql语句出错时会导致程序出错,如何获得提示?

chj19821203 2008-05-17 04:30:27
strSql = "select * from " + m_sTable + SelectSql;
bstrSql = strSql.AllocSysString();
pRst->Open(bstrSql,
_variant_t((IDispatch *)pConn,true),
adOpenDynamic,
adLockOptimistic,
adCmdText);
其中,SelectSql是通过用户填写的数据生成的.所以有可能会造成选择项目不存在,此时,程序会崩溃掉,如何在输入错误时令程序不出错,而是给出sql填写有误的提示信息呢?
vc6.0 access2003
...全文
84 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
快乐鹦鹉 2008-05-19
  • 打赏
  • 举报
回复
增加Try,catch的判断
BOOL CDBImp::GetNewSPSInfo(SPS_INFO &spsInfo)
{
CString sSqlStr = "SELECT * FROM CJ_TEMP_COMPASS";
try
{
_RecordsetPtr piRecordset = GetRecordset(sSqlStr);
if(piRecordset == NULL)
return FALSE;
if(!piRecordset->EndOfFile)
{
spsInfo.fHeading = RsITEM_DECIMAL(piRecordset,"HEADING");
spsInfo.fROT = RsITEM_DECIMAL(piRecordset,"RATEOFTURN");
spsInfo.tReptTime = RsITEM_DATE(piRecordset,"T_LOG");
}
else
return FALSE;
}
catch(_com_error &e)///捕捉异常
{
DBErrManage(e);
DisConnect();
return FALSE;
}
return TRUE;
}
zaodt 2008-05-19
  • 打赏
  • 举报
回复

try
{
// 打开记录集
pRst->Open(...
}
catch(_com_error &e)
{
// 有错误发生,显示错误信息并返回
MessageBox(e.Description());
return;
}
tianloveyou 2008-05-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zaodt 的回复:]
C/C++ code
try
{
// 打开记录集
pRst->Open(...
}
catch(_com_error &e)
{
// 有错误发生,显示错误信息并返回
MessageBox(e.Description());
return;
}
[/Quote]
CathySun118 2008-05-18
  • 打赏
  • 举报
回复
用try catch

4,011

社区成员

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

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