Pregunta

En SQL puedes usar

SELECCIONAR * DE INFORMACIÓN_SCHEMA.TABLES

etc. para obtener información sobre la estructura de la base de datos.Necesito saber cómo lograr lo mismo para una base de datos de Access.

¿Fue útil?

Solución

La operación equivalente se puede lograr usando

Método OleDbConnection.GetOleDbSchemaTable().

ver http://support.microsoft.com/kb/309488 para más información

Otros consejos

En OLEDB se puede acceder a él como DBSCHEMA_TABLES.El siguiente código C++ demuestra la recuperación de la información de las tablas de un proveedor 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();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top