永发信息网

请用MFC写一个判断表是否存在或为空的函数?

答案:2  悬赏:10  手机版
解决时间 2021-03-31 17:25
  • 提问者网友:鼻尖触碰
  • 2021-03-31 04:37
函数定义为int getTableId(_ConnectionPtr &conn,CString table),若数据库中不存在该表则返回 -1,若该表中无记录则返回0。此函数可以使用请使用_ConnectionPtr类和_RecordsetPtr类,是针对通用数据库,包括SQL Server、Qracle和mysql。
最佳答案
  • 五星知识达人网友:西岸风
  • 2020-11-29 13:36
用_ConnectionPtr的Execute方法。如果表不存在,会抛出_com_error异常,如果表存在无记录,则_RecordsetPtr不存在记录。
//_RecordsetPtr m_pRecordset;
int getTableId(_ConnectionPtr &conn,CString table) {
CString strQuery;
strQuery.Format(_T("select 1 from %s"), table);
try {
m_pRecordset = conn->Execute((_bstr_t)strQuery, NULL, adCmdText);
}
catch(_com_error e) {
return -1;//表不存在
}
if (m_pRecordset->adoBOF) {
m_pRecordset->Close();
return 0;//无记录
} else {
m_pRecordset->Close();
return 1;//有记录
}
}
这个函数有些不严谨,不过较直观,基本能满足函数功能要求。
全部回答
  • 1楼网友:千杯敬自由
  • 2020-07-25 13:07
应该不是吧。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯