Uzyskiwanie metadanych z zestawów wierszy schematu
Czasami trzeba uzyskać informacje o dostawcy, wierszy, tabeli, kolumn lub inne informacje z bazy danych bez konieczności otwierania zestawu wierszy.Dane dotyczące struktury bazy danych jest nazywany metadane i mogą być pobierane przez wiele różnych sposobów.Jedną z metod jest użycie schematu zestawów wierszy.
OLE DB Szablony stanowią zbiór klas do pobierania informacji o schemacie; te klasy Tworzenie wierszy wstępnie zdefiniowanych schematów, wymienione w wierszy klasy i schematu klasy Typedef.
[!UWAGA]
Jeśli używasz OLAP i niektóre Twoje zestawów wierszy nie są obsługiwane przez schemat klasy wierszy (na przykład masz zmienna liczba kolumn), należy rozważyć użycie CManualAccessor lub CDynamicAccessor.Można przewijać kolumn i użyć sprawa instrukcji obsługi typów danych możliwe dla każdej kolumny.
/ Schematu wykazu modelu
ANSI SQL określa wzór schematu/wykazu magazynów danych; OLE DB używa tego modelu.W tym modelu katalogi (bazy danych) zawierają schematów i schematy zawierać tabel.
Katalog katalog jest inna nazwa bazy danych.Jest kolekcją powiązanych schematów.Aby wyświetlić listę katalogów (bazy danych), należące do źródła danych w danym, użyj CCatalog.Ponieważ wiele baz danych mają tylko jeden katalog, metadanych niekiedy nosi informacji o schemacie.
Schemat schemat jest zbiorem obiektów bazy danych, które są jego własnością lub zostały utworzone przez określonego użytkownika.Aby wyświetlić listę schematów, należących do danego użytkownika, użyj CSchemata.
W Microsoft SQL Server i ODBC 2.x, schemat jest właścicielem (na przykład dbo jest nazwa schematu typowe).Ponadto SQL Server przechowuje metadane w tabelach: jedna tabela zawiera listę wszystkich tabel i innej tabeli zawiera listę wszystkich kolumn.Brak jest odpowiednika schematu bazy danych Microsoft Access.
Tabela tabele są kolekcje kolumny rozmieszczone w określonych zamówień.Aby wyświetlić listę tabel zdefiniowanych w danym katalogu (Baza danych) oraz informacje o tych tabel, użyj CTables).
Ograniczenia
Przy wyszukiwaniu informacji o schemacie, można użyć ograniczenia, aby określić typ informacji, w którym jesteś zainteresowany.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 tylko jeden ograniczeń; klasy schematu wierszy obsługuje kilka ograniczeń.
Klasy typedef wierszy schematu hermetyzowania wszystkich wierszy schematu bazy danych OLE, aby umożliwić dostęp wierszy schematu, podobnie jak inne zestawu wierszy, utworzenie wystąpienia i otwierając go.Na przykład klasa typedef CColumns jest zdefiniowana jako:
CRestrictions<CAccessor<CColumnsInfo>
CRestrictions klasa zapewnia wsparcie ograniczeń.Po utworzeniu instancji wierszy schematu call CRestrictions::Open.Ta metoda zwraca zestaw wyników na podstawie ograniczeń, które określisz.
Aby określić ograniczenia, zapoznaj się z Dodatek B: schematu wierszy i wyszukać zestawu wierszy, którego używasz.Na przykład CColumns odpowiada Wierszy kolumn; Ten temat zawiera listę kolumn ograniczeń w wierszy kolumn: TABLE_CATALOG, TABLE_SCHEMA, nazwa_tabeli, 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 ograniczenie, a następnie wywołać Otwórz, określając nazwę odpowiednią tabelę jako trzeci parametr ograniczeń, jak pokazano w następującym przykładzie.
Aby użyć schematu zestawów wierszy.
Musi zawierać plik nagłówkowy Atldbsch.h (oczywiście potrzebny Atldbcli.h dla konsumenta oraz pomocy technicznej).
Utwórz wystąpienie obiektu zestawu wierszy schematu 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ć z 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(); }
Pobiera informacje, na przykład dostęp członka odpowiednich danych schematu obiektu zestawu wierszy, ColumnSchemaRowset.m_szColumnName.Odpowiada to COLUMN_NAME.Aby wyświetlić kolumnę bazy danych OLE, która odpowiada każdego członka danych, zobacz CColumns.
Dla odwołania wierszy schematu klasy typedef przewidzianych w szablonów OLE DB (zobacz wierszy klasy i schematu klasy Typedef).
Aby uzyskać więcej informacji dotyczących wierszy schematu OLE DB, włącznie z kolumnami ograniczenie zobacz Dodatek B: schematu wierszy w OLE DB Programmer's Reference.
Bardziej złożone przykłady sposobów użycia klasy wierszy schematu, zobacz CatDB i DBViewer próbki.
Aby uzyskać informacje dotyczące dostawcy obsługi zestawów wierszy schematu, zobacz Obsługi zestawów wierszy schematu.