会员登录 - 用户注册 - 网站地图 Office中国(office-cn.net),专业Office论坛
当前位置:主页 > 技巧 > Access技巧 > 编程心得绝招 > 实际编程 > 正文

如何用VC+ADO获取当前ACCESS数据库中的表的名称

时间:2004-01-29 17:43 来源:本站原创 作者:taishan_… 阅读:

主要代码如下:

void OpenSchemaX(TCHAR *TableName)
{
    HRESULT  hr = S_OK;

 IADORecordBinding   *picRs = NULL;
 
 _RecordsetPtr pRstSchema("ADODB.Recordset");
 _ConnectionPtr pConnection("ADODB.Connection" );


 pConnection->ConnectionString = TableName;
 pConnection->Provider = "Microsoft.Jet.OLEDB.4.0";

   try
    {
  pConnection->Open(pConnection->ConnectionString, "", "", adModeUnknown);
   pRstSchema->QueryInterface(
           __uuidof(IADORecordBinding), (LPVOID*)&picRs);

        pRstSchema = pConnection->OpenSchema(adSchemaTables);//枚举表的名称处理

        while(!(pRstSchema->EndOfFile))
        {
   CString strTableType;

            _bstr_t table_name = pRstSchema->Fields->
                GetItem("TABLE_NAME")->Value;//获取表的名称

            _bstr_t table_type = pRstSchema->Fields->
                GetItem("TABLE_TYPE")->Value;//获取表的类型


            strTableType.Format("%s",(LPCSTR) table_type);
   
   if(!lstrcmp(strTableType,_T("TABLE")))
            {
    m_cbTeam.AddString((LPCSTR) table_name);//添加表的名称
   }

            pRstSchema->MoveNext();
        }
        // Clean up objects before exit.

        pRstSchema->Close();
        pConnection->Close();
    }

    catch (_com_error &e)
    {
        // Notify the user of errors if any.
        // Pass a connection pointer accessed from the Connection.       
        PrintProviderError(pConnection);
        PrintComError(e);
    }
}

(责任编辑:admin)

顶一下
(1)
100%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价: