您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> ACCESS >> 辅导 >> 正文    
  获取ACCESS2000数据库中所有表的名称 【注册男护士专用博客】          

获取ACCESS2000数据库中所有表的名称

www.nanhushi.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();

  }

  void PrintProviderError(_ConnectionPtr pConnection)

  {

  ErrorPtr pErr = NULL;

  if( (pConnection->Errors->Count) > 0)

  {

  long nCount = pConnection->Errors->Count;

  // Collection ranges from 0 to nCount -1.

  for(long i = 0;i < nCount;i++)

  {

  pErr = pConnection->Errors->GetItem(i);

  CString strError;

  strError.Format("Error number: %x\t%s", pErr->Number, pErr->Description);

  AfxMessageBox(strError);

  }

  }

  }

  void PrintComError(_com_error &e)

  {

  _bstr_t bstrSource(e.Source());

  _bstr_t bstrDescription(e.Description());

  // Print COM errors.

  CString strError;

  strError.Format("Error number: Description = %s\tCode meaning = %s",(LPCSTR) bstrDescription, e.ErrorMessage());

  AfxMessageBox(strError);

  }

  调用方法:

  CString strFileName;

  TCHAR FileName[MAX_PATH];

  TCHAR bigBuff[2048] = _T(""); // maximum common dialog buffer size

  TCHAR szFilter[] = _T("Text Files (*.mdb)|*.mdb|All Files (*.*)|*.*

  ");

  CFileDialog dlg(TRUE, NULL, NULL,

  OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT, szFilter);

  // Modify OPENFILENAME members directly to point to bigBuff

  dlg.m_ofn.lpstrFile = bigBuff;

  dlg.m_ofn.nMaxFile = sizeof(bigBuff);

  if(IDOK == dlg.DoModal() )

  {

  strFileName = dlg.GetPathName();

  lstrcpy(FileName,strFileName);

  OpenSchemaX(FileName);

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。