GetOleDbSchemaTable metódus
A példánkban mind Oracle, mind pedig MS SQL Server esetén bemutatjuk a bevezetőben említett lehetőséget. Amennyiben csak az egyik adatbázis-kezelő rendszerrel rendelkezik, csak az adott alkalmazásnak megfelelő fül alatt található funkciókat érheti el.
Az adatbázis eléréséhez egy OleDbConnection komponenst használunk fel, melynek GetOleDbSchemaTable metódusa lesz a segítségünkre abban, hogy lekérdezzük a meghatározott információkat.
A metódus jellemzői a következők:

GetOleDbSchemaTable
Osztály: OleDbConnection
public DataTable GetOleDbSchemaTable(
Guid schema,
object[] restrictions
);
A metódus segítségével információkat kérdezhetünk le az adott adatbázissal kapcsolatban. Oracle-rendszer esetén ez az információ csupán a táblákhoz, és nézetekhez kapcsolódik, MS SQL Server esetén azonban lehetőségünk van számtalan, az adatbázis rendszertábláiban tárolt információt lekérdezni.
Paraméterek
Guid schema
Lehetséges értékei a OleDbSchemaGuid osztály mezői közül egy. Ez Oracle esetén az OleDbSchemaGuid.Tables, mivel az Oracle nem rendelkezik katalógusrendszerrel, így a többi mező választása hibához vezet. MS SQL Server esetén azonban a struktúra valamennyi mezőjét választhatjuk, számtalan hasznos információt kaphatunk meg.
object[] restrictions
Egy objektumtömböt kell deklarálni annak érdekében, hogy milyen elrendezésben szeretnénk viszontlátni az adatokat. MS SQL Server esetén a tömb minden eleme NULL, míg Oracle esetén ennek 4. mezőjében kell megadnunk azt, hogy milyen típusú táblákkal kapcsolatban jelenjenek meg adatok. Minden első paraméterben megadott értékhez tartozik egy lista, mely a visszakapott oszlopok neveit, és így az információ jellegét tartalmazza. Például OleDbSchemaGuid.Tables esetén TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE. Az utolsó érték lehet: ALIAS, TABLE, SYNONYM, stb.
Visszatérési érték
Egy DataTable objektum, mely tartalmazza a kért információkat. A nem értelmezhető értékek esetén NULL jelenik meg a cellákban. Lekérdezéskor megadhatjuk, hogy milyen jellegű objektumok számát és sémáját szeretnénk megismerni.
Felhasználás Oracle-rendszer esetén
A példában az Oracle fül alatt meg kell adnunk a szerver nevét, melynek egy felhasználói sémájában megtalálható táblák, és nézetek tulajdonságaira kíváncsiak vagyunk. Meg kell adnunk a felhasználó nevét, és jelszavát, valamint kiválaszthatjuk.
A MŰVELET gombra kattintva meghívjuk a GetOleDbSchemaTable metódust, és a kapott eredményhalmazt megjelenítjük a Form-on megtalálható DataGrid kontrolban:
dt = oleDbConnection1.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[]{null, null, null, comboBox1.Text});
...
dataGrid1.DataSource = dt.DefaultView;
Felhasználás MS SQL Server esetén
A MS SQL Server fül alatt ki kell választanunk, hogy a rendszertáblákból milyen jellegű, összesített információkat kívánunk lekérdezni. A ComboBox kontrolban elhelyezett értékeken kívül természetesen sokkal több áll rendelkezésre, azonban már ebből is látszik, milyen hasznos információkhoz juthatunk a metódus segítségével. Ellenkező esetben nekünk kellene az adatokat rendszertáblákból összegyűjteni.
A kiválasztott elemektől függően megadjuk a metódus első paraméterét, valamint megadunk egy objektumtömböt, mely négy-elemű, és minden eleme NULL.
Guid g = Guid.Empty;
switch(comboBox2.SelectedIndex)
{
case (0):
{
g = OleDbSchemaGuid.Columns;
break;
}
...
}
...
dt = oleDbConnection1.GetOleDbSchemaTable(g, new object[]{null, null, null, null});
Mindkét esetben gondoskodtunk arról, hogy az OleDbConnection objektumnak a művelet-végrehajtás előtt meghívjuk az Open metódusát.