Udostępnij za pośrednictwem


Uzyskiwanie metadanych za pomocą zestawów wierszy schematu

Czasami konieczne jest uzyskanie informacji na temat dostawca, zestaw wierszy, tabel, kolumn lub innych informacji bazy danych bez otwierania zestawu wierszy.Dane na temat struktury bazy danych nazywa się metadane i mogą być pobierane przez wiele różnych sposobów.Jedną z metod jest użycie schematu wierszy.

OLE DB szablony zawierają zestaw klas do pobierania informacji o schemacie; te klasy Tworzenie wierszy wstępnie zdefiniowanego schematu i są wymienione w klasy zestaw wierszy schematu i element Typedef klasy.

[!UWAGA]

Jeśli używasz OLAP i niektóre z zestawów wierszy nie są obsługiwane przez klasy schematu zestaw wierszy (na przykład masz zmienna liczba kolumn), należy rozważyć użycie CManualAccessor lub CDynamicAccessor.Można przewijać kolumn i użyć instrukcji case do obsługi typów danych możliwe dla każdej kolumny.

Model/schematu katalogu

ANSI SQL definiuje model katalog/schematu dla magazynów danych; OLE DB używa tego modelu.W tym modelu schematów zawiera katalogi (bazy danych) i schematy zawiera tabele.

  • Katalog katalog jest inną nazwą bazy danych.Jest to zbiór powiązanych schematów.Aby wyświetlić listę katalogów (bazy danych), należące do źródła danych danego, użyj CCatalog.Ponieważ wiele baz danych ma tylko jeden katalog, metadane czasami po prostu nazywa się informacji o schemacie.

  • Schemat schemat jest kolekcją obiektów bazy danych, które są własnością lub zostały utworzone przez danego użytkownika.Aby wyświetlić listę Schematy należące do danego użytkownika, należy użyć CSchemata.

    W programie Microsoft SQL Server i ODBC 2.x, schemat jest właścicielem (na przykład dbo jest nazwa schematu typowe).Ponadto program SQL Server metadane są przechowywane w tabelach: jedna tabela zawiera listę wszystkich tabel i innej tabeli zawiera listę wszystkich kolumn.Nie ma odpowiednika do schematu bazy danych programu Microsoft Access.

  • Tabela tabele są kolekcjami kolumn ułożone w określonych zamówień.Aby wyświetlić listę tabel zdefiniowanych w danym katalogu (baza danych) i informacje o tych tabelach, należy użyć CTables).

Ograniczenia

Przy wyszukiwaniu informacji o schemacie, ograniczenia można użyć, aby określić typ informacji, w którym są Państwo zainteresowani.Można traktować ograniczeniami jako filtr lub kwalifikator w kwerendzie.Na przykład w kwerendzie:

SELECT * FROM authors where l_name = 'pivo'

l_nameto ograniczenie.Jest to bardzo prosty przykład z ograniczeniem tylko jeden; klasy wierszy schematu obsługuje wiele ograniczeń.

Klasy typedef zestaw wierszy schematu hermetyzacji wszystkich wierszy schematu OLE DB, dzięki czemu dostęp do wierszy schematu, podobnie jak inne wierszy uruchamianiu i otwierając go.Na przykład klasa typedef CColumns jest zdefiniowana jako:

CRestrictions<CAccessor<CColumnsInfo>

CRestrictions klasa zapewnia obsługę ograniczeń.Po utworzeniu instancji zestaw wierszy schematu, call CRestrictions::Open.Ta metoda zwraca zestaw wyników, w oparciu o ograniczenia, które określisz.

Aby określić ograniczenia, odnoszą się do Dodatek B: schematu wierszy i odszukać zestaw wierszy, którego używasz.Na przykład CColumns odpowiada Zestaw wierszy kolumn; Ten temat zawiera listę kolumn ograniczeń w zestawie wierszy kolumn: TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME.Należy wykonać tej kolejności, określając swoje ograniczenia.

Tak, na przykład, jeśli chcesz ograniczyć nazwę tabeli, należy zauważyć, że nazwa_tabeli trzeciej kolumny ograniczenia, a następnie wywołać Otwórz, określając nazwę tabeli, którą chcesz jako trzeciego parametru ograniczeń, jak pokazano w następującym przykładzie.

Aby użyć schematu wierszy

  1. Musi zawierać plik nagłówka Atldbsch.h (oczywiście potrzebny Atldbcli.h dla konsumenta jak również pomocy technicznej).

  2. Utwórz wystąpienie obiektu zestaw wierszy schematu w konsumenta lub dokumentu pliku nagłówka.Informacje o tabeli należy zadeklarować CTables obiektu; informacje o kolumnie należy zadeklarować CColumns obiektu.Ten przykład pokazuje jak pobrać kolumny w tabeli Autorzy:

    CDataSource ds;
    ds.Open();
    CSession ss;
    ss.Open();
    CColumns ColumnSchemaRowset;
    // TABLE_NAME is the third restriction column, so
    // specify "authors" as the third restriction parameter:
    hr = ColumnSchemaRowset.Open(ss, NULL, NULL, "authors");
    hr = ColumnSchemaRowset.MoveFirst();
    while (hr == S_OK)
    {
       hr = ColumnSchemaRowset.MoveNext();
    }
    
  3. Pobieranie informacji, na przykład dostęp członka danych właściwe schematu obiektu zestawu wierszy, ColumnSchemaRowset.m_szColumnName.Odpowiada to nazwa_kolumny.Aby wyświetlić kolumnę OLE DB, która odpowiada każdego członka danych, zobacz CColumns.

Odwołanie zestaw wierszy schematu, klas typedef dostarczone w szablonach OLE DB (zobacz klasy zestaw wierszy schematu i klasy Typedef).

Aby uzyskać więcej informacji na temat zestawów wierszy schematu OLE DB, łącznie z kolumn, ograniczeń, zobacz Dodatek B: schematu wierszy w OLE DB Programmer's Reference.

Aby uzyskać bardziej złożonymi przykładami użycia klasy zestaw wierszy schematu, zobacz CatDB i DBViewer próbki.

Informacje dostawcy obsługę zestawów wierszy schematu, zobacz Obsługi zestawów wierszy schematu.

Zobacz też

Koncepcje

Korzystanie z metod dostępu