在SQL你可以使用什麼是OleDb的等效INFORMATION_SCHEMA
SELECT * FROM INFORMATION_SCHEMA.TABLES
等,以獲得有關數據庫結構的信息。我需要知道如何爲Access數據庫實現相同的功能。
在SQL你可以使用什麼是OleDb的等效INFORMATION_SCHEMA
SELECT * FROM INFORMATION_SCHEMA.TABLES
等,以獲得有關數據庫結構的信息。我需要知道如何爲Access數據庫實現相同的功能。
等效的操作,可以
OleDbConnection.GetOleDbSchemaTable()方法來實現。
在OLEDB它可以作爲DBSCHEMA_TABLES進行訪問。以下C++代碼演示了從OLEDB提供程序檢索表信息:
#include <atldb.h>
...
// Standard way of obtaining table node info.
CAccessorRowset<CDynamicAccessor, CBulkRowset> pRS;
pRS.SetRows(100);
CSchemaTables<CSession>* pBogus;
hr = session.CreateSchemaRowset(NULL, 0, NULL, IID_IRowset, 0, NULL, (IUnknown**)&pRS.m_spRowset, pBogus);
if (FAILED(hr))
goto lblError;
hr = pRS.Bind();
if (FAILED(hr))
goto lblError;
hr = pRS.MoveFirst();
if (FAILED(hr))
goto lblError;
while (S_OK == hr)
{
wstring sTableSchema(pRS.GetWCharValue(L"TABLE_SCHEMA"));
wstring sTableName(pRS.GetWCharValue(L"TABLE_NAME"));
wstring sTableType(pRS.GetWCharValue(L"TABLE_TYPE"));
...
hr = pRS.MoveNext();
}
pRS.Close();