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

时间:2006-11-16 08:13:00  来源:  作者:
void OpenSchemaX(TCHAR *TableName)p7E第一天空网络
{p7E第一天空网络
HRESULT hr = S_OK;

::CoInitialize(NULL); //初始化Comp7E第一天空网络

IADORecordBinding *picRs = NULL;p7E第一天空网络

_RecordsetPtr pRstSchema("ADODB.Recordset");p7E第一天空网络
_ConnectionPtr pConnection("ADODB.Connection" );
p7E第一天空网络

pConnection->ConnectionString = TableName;p7E第一天空网络
pConnection->Provider = "Microsoft.Jet.OLEDB.4.0";
p7E第一天空网络

tryp7E第一天空网络
{p7E第一天空网络
pConnection->Open(pConnection->ConnectionString, "", "", adModeUnknown);p7E第一天空网络
pRstSchema->QueryInterface(p7E第一天空网络
__uuidof(IADORecordBinding), (LPVOID*)&picRs);
p7E第一天空网络

pRstSchema = pConnection->OpenSchema(adSchemaTables);//枚举表的名称处理p7E第一天空网络

while(!(pRstSchema->EndOfFile))p7E第一天空网络
{p7E第一天空网络
CString strTableType;
p7E第一天空网络

_bstr_t table_name = pRstSchema->Fields->p7E第一天空网络
GetItem("TABLE_NAME")->Value;//获取表的名称
p7E第一天空网络

_bstr_t table_type = pRstSchema->Fields->p7E第一天空网络
GetItem("TABLE_TYPE")->Value;//获取表的类型
p7E第一天空网络

strTableType.Format("%s",(LPCSTR) table_type);p7E第一天空网络

if(!lstrcmp(strTableType,_T("TABLE")))p7E第一天空网络
{p7E第一天空网络
m_strList.AddString((LPCSTR) table_name);//添加表的名称p7E第一天空网络
}
p7E第一天空网络

pRstSchema->MoveNext();p7E第一天空网络
}p7E第一天空网络
// Clean up objects before exit.
p7E第一天空网络

pRstSchema->Close();p7E第一天空网络
pConnection->Close();p7E第一天空网络
}
p7E第一天空网络

catch (_com_error &e)p7E第一天空网络
{p7E第一天空网络
// Notify the user of errors if any.p7E第一天空网络
// Pass a connection pointer accessed from the Connection. p7E第一天空网络
PrintProviderError(pConnection);p7E第一天空网络
PrintComError(e);p7E第一天空网络
}p7E第一天空网络
CoUninitialize();p7E第一天空网络
}
p7E第一天空网络

void PrintProviderError(_ConnectionPtr pConnection)p7E第一天空网络
{p7E第一天空网络
ErrorPtr pErr = NULL;
p7E第一天空网络

if( (pConnection->Errors->Count) > 0)p7E第一天空网络
{p7E第一天空网络
long nCount = pConnection->Errors->Count;p7E第一天空网络
// Collection ranges from 0 to nCount -1.p7E第一天空网络
for(long i = 0;i < nCount;i++)p7E第一天空网络
{p7E第一天空网络
pErr = pConnection->Errors->GetItem(i);p7E第一天空网络
CString strError;p7E第一天空网络
strError.Format("Error number: %xt%s", pErr->Number, pErr->Description);p7E第一天空网络
AfxMessageBox(strError);p7E第一天空网络
}p7E第一天空网络
}p7E第一天空网络
}
p7E第一天空网络

void PrintComError(_com_error &e)p7E第一天空网络
{p7E第一天空网络
_bstr_t bstrSource(e.Source());p7E第一天空网络
_bstr_t bstrDescription(e.Description());
p7E第一天空网络

// Print COM errors. p7E第一天空网络
CString strError;p7E第一天空网络
strError.Format("Error number: Description = %stCode meaning = %s",(LPCSTR) bstrDescription, e.ErrorMessage());p7E第一天空网络
AfxMessageBox(strError);p7E第一天空网络
}
p7E第一天空网络

调用方法:p7E第一天空网络

CString strFileName;p7E第一天空网络
TCHAR FileName[MAX_PATH];p7E第一天空网络
TCHAR bigBuff[2048] = _T(""); // maximum common dialog buffer sizep7E第一天空网络
TCHAR szFilter[] = _T("Text Files (*.mdb)|*.mdb|All Files (*.*)|*.*p7E第一天空网络
");p7E第一天空网络
CFileDialog dlg(TRUE, NULL, NULL,p7E第一天空网络
OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT, szFilter);
p7E第一天空网络

// Modify OPENFILENAME members directly to point to bigBuffp7E第一天空网络
dlg.m_ofn.lpstrFile = bigBuff;p7E第一天空网络
dlg.m_ofn.nMaxFile = sizeof(bigBuff);
p7E第一天空网络

if(IDOK == dlg.DoModal() )p7E第一天空网络
{p7E第一天空网络
strFileName = dlg.GetPathName();p7E第一天空网络
lstrcpy(FileName,strFileName);p7E第一天空网络
OpenSchemaX(FileName);p7E第一天空网络
}(出处:风闪网路学院) p7E第一天空网络
p7E第一天空网络

文章评论

共有 位天空网友发表了评论 查看完整内容

特别推荐
  • 文字广告
  • 文字广告
  • 文字广告
  • 文字广告
站长黑板报

24小时热门信息