数据恢复急救中心 >> 数据恢复论坛 >> 数据恢复中心 >> 获取ACCESS2000数据库中所有表的名称
(版主: 无)

标题:获取ACCESS2000数据库中所有表的..

总置顶·置顶·精华·锁定·删除·移动·提升
12-29 20:54
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; TencentTraveler )
njl 庶民
头衔 --
njl 注册 07-12-19
来自
获取ACCESS2000数据库中所有表的名称


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;

59.57.217.* 楼主
标题
使用表情识别
使用UBB代码
使用个人签名
广告位招租,广告代号:PubGGAD
数据恢复急救中心·提供硬盘RAID等数据恢复服务
All Rights Reserved. shuju120.com Beta