HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Információk az adatbázis tábláiról


Példaprogram letöltése

9395 bájt

Előfordulhat olyan eset, hogy nincs szükségünk egy adatbázis tábláinak adataira, csupán azt szeretnénk meghatározni, hogy hány darab tábla tartozik az adott adatbázishoz. Cikkünkben bemutatjuk, hogyan juthatunk ehhez az információhoz a .NET egy metódusának felhasználásával. A metódus kapcsán ismertetjük, hogy milyen jellegű információkhoz juthatunk még a paraméterek megváltozásával.

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.

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 214. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |