Frage

In SQL können Sie

SELECT * FROM INFORMATION_SCHEMA.TABLES

usw. Informationen über die Datenbankstruktur zu erhalten. Ich muss wissen, wie die gleiche Sache für eine Access-Datenbank zu erreichen.

War es hilfreich?

Lösung

Die äquivalente Operation kann unter Verwendung erreicht werden

OleDbConnection.GetOleDbSchemaTable () -Methode.

finden Sie unter http://support.microsoft.com/kb/309488 für weitere Informationen

Andere Tipps

In OLEDB kann es als DBSCHEMA_TABLES zugegriffen werden. Im Anschluss an C ++ Code demonstriert das Abrufen der Tabellen Informationen von einem OLE DB-Provider:

#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();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top