| 学习资料 —> IT类 —> 计算机等级
 
获取ACCESS2000数据库中所有表的名称
(发布时间:2007-6-8 16:25:00 来自:模考网)

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.

 [1] [2] [3] [下一页]

 

收藏此页】【字体: 】【打印】【关闭