我用ADO对一个access数据库编程,如果我不知道这个数据库中有哪些数据表,我怎么得到关于所有数据表的信息,比如表名。有人说用ADOX能解决这个问题,不知道应该怎么做?如果直接用ADO,真的就毫无办法了吗?
各位高手,希望你能给我一个较详细的例子说明,小弟我先谢过了!!!
各位高手,希望你能给我一个较详细的例子说明,小弟我先谢过了!!!
解决方案 »
- Excel 表中的cell值怎么导出啊? 求大神来啊
- 急!急!急![DirectX Show]ISampleGrabberCB如何旋转视频90度
- 日环食,你看了吗?
- Windows对话框?
- 停止服务时出现错误997:重叠I/O操作在进行中,附代码
- 怎么做出类似拖放文件时那种淡淡的显示效果?
- 对小文件的存取是用 ASIIC 方式好一点还是 二进制的好一些?
- 如何将一份TXT文本隐藏到jpg图片之中
- 菜鸟问题:如果得到这程序的网卡的mac值...谢谢
- 怎样在PreTranslateMessage中判断有没有按下shift、alt或ctrl键?
- 好朋友远赴新疆发展,放分祝其一路顺风。
- 如何得到鼠标在另外一个应用程序的点击消息,能吗?
Public Sub OpenSchemaX() Dim cnn1 As ADODB.Connection
Dim rstSchema As ADODB.Recordset
Dim strCnn As String
Set cnn1 = New ADODB.Connection
strCnn = "driver={SQL Server};server=srv;" & _
"uid=sa;pwd=;database=pubs"
cnn1.Open strCnn
Set rstSchema = cnn1.OpenSchema(adSchemaTables)
Do Until rstSchema.EOF
Debug.Print "Table name: " & _
rstSchema!TABLE_NAME & vbCr & _
"Table type: " & rstSchema!TABLE_TYPE & vbCr
rstSchema.MoveNext
Loop
rstSchema.Close
cnn1.Close
End Sub
bool IsTableExist(LPCTSTR sConnectionStr,LPCTSTR suser,LPCTSTR spwd,LPCTSTR sTableName)
{
bool bTableExist = false;
HRESULT hr = S_OK;
std::ostringstream oss;
ADOX::_CatalogPtr m_pCatalog = NULL;
try
{
TESTHR(hr = m_pCatalog.CreateInstance(__uuidof(ADOX::Catalog)));
m_pCatalog->PutActiveConnection((LPCTSTR)sConnectionStr);
ADOX::TablesPtr tables=m_pCatalog->Tables;
for(long i=0;i<tables->Count;i++)
{
ADOX::_TablePtr pTable = NULL;
pTable=tables->Item[i];
if(stricmp(sTableName,(LPCSTR)(pTable->Name))==0)
{
bTableExist = true;
break;
}
}
}
catch(_com_error &e)
{
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
oss<<"_com_error Source:"<<(LPCSTR)bstrSource<<" \t description: ";
oss<<(LPCSTR)bstrDescription;
AfxMessageBox(oss.str().c_str());
}
return bTableExist;
}