سؤال

في SQL يمكنك استخدامها

اختر * من INFORMATION_SCHEMA.TABLES

إلخ للحصول على معلومات حول بنية قاعدة البيانات.أريد أن أعرف كيفية تحقيق نفس الشيء بالنسبة لقاعدة بيانات Access.

هل كانت مفيدة؟

المحلول

يمكن إنجاز العملية المكافئة باستخدام

أسلوب OleDbConnection.GetOleDbSchemaTable().

يرى http://support.microsoft.com/kb/309488 للمزيد من المعلومات

نصائح أخرى

في 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();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top