龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

获取ACCESS2000数据库中的所有表的名称(vc + ado)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
原理就是通过枚举数据库中的表的类型,用户建立的表的类型一般是TBALE。所以通过判断当前数据库中表的类型,就可以获取表的名称了。 初始化部分 在stdafx.h中添加: #include icrsint.

原理就是通过枚举数据库中的表的类型,用户建立的表的类型一般是TBALE。所以通过判断当前数据库中表的类型,就可以获取表的名称了。

初始化部分

在stdafx.h中添加:

#include <icrsint.h>
#include <basetsd.h>
#include <ole2.h>

#import "c:Program FilesCommon FilesSystemADOmsado15.dll"
no_namespace rename("EOF", "EndOfFile") 

在主对话框的头文件中,映射一个:

 CListBox m_strList;

实现部分说明: 

在构造函数中添加:

 ::CoInitialize(NULL); //初始化Com库

实现代码:

//枚举数据表的名称处理

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

 ::CoInitialize(NULL); //初始化Com
 
 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_strList.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);
    }
 CoUninitialize();
}

精彩图集

赞助商链接