c++查询ACCESS,怎么判断表名已经存在

 我来答
skheda
推荐于2016-05-04 · TA获得超过165个赞
知道小有建树答主
回答量:156
采纳率:100%
帮助的人:81.9万
展开全部
遍历数据库中的所有表名,然后对比
_ConnectionPtr m_pConnect;
_RecordsetPtr pSet;
HRESULT hr;
try

    hr = m_pConnect.CreateInstance("ADODB.Connection");   
    if(SUCCEEDED(hr)) 
    {
        CString dd; 
        dd.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s",file); 
        hr = m_pConnect->Open((_bstr_t)dd,"","",adModeUnknown); 
        pSet = m_pConnect->OpenSchema(adSchemaTables);     
        while(!(pSet->adoEOF)) 
        {       
            //获取表格   
            _bstr_t table_name = pSet->Fields->GetItem("TABLE_NAME")->Value;
            //获取表格类型       
            _bstr_t table_type = pSet->Fields->GetItem("TABLE_TYPE")->Value;
            //过滤一下,只输出表格名称,其他的省略
            if ( strcmp(((LPCSTR)table_type),"TABLE")==0){
                CString tt;
                tt.Format("%s",(LPCSTR)table_name);   
                AfxMessageBox(tt);       
            }     
            pSet->MoveNext();   
        } 
        pSet->Close(); 
    } 
    m_pConnect->Close(); 
}catch(_com_error e)///捕捉异常

    CString errormessage; 
    errormessage.Format("连接数据库失败!rn错误信息:%s",e.ErrorMessage());
    AfxMessageBox(errormessage);
    return -1;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式