|
|
Adatbázis objektumok speciális tulajdonságainak lekérdezése
|
|
Példaprogram letöltése
5572 bájt
|
Ha például létrehozunk egy MS SQL táblát és minden oszlopához egy-egy leírást (Description) is megadunk, akkor felmerül a kérdés, hogy az ide beírt adatok miként érhetők el programból. Természetesen nem csak ennek a tulajdonságnak az értéke érhető el, hanem bármely más megadott adat is, sőt akár saját, egyedi tulajdonságokat is létrehozhatunk az egyes objektumokhoz, melyeknek tetszőleges értéket adhatunk.

A mellékelt példa indítása előtt hozza létre az ExtendedProperty adatbázist, melyhez futtassa le a mellékelt CreateDatabase.sql-t.
A megoldás előtt szükségünk lesz egy táblára, melynek Description tulajdonságait is feltöltöttük értékkel. A példánkban lévő Table1 táblának három char típusú mezője van, melynél minden esetben a Description tulajdonság is kitöltésre került.
Adott egy rendszer függvény, mely fn_listextendedproperty névre hallgat. Ezzel a függvénnyel képesek vagyunk lekérdezni a számunkra érdekes tulajdonságokat.
A függvény több paramétert is vár, nézzük ezeket sorra:
- A tulajdonság neve. Alapértelmezett érték esetén használhatjuk a default kulcsszót, vagy ha nem akarjuk megadni ezt a paramétert, akkor a NULL-t.
- A második paraméter lehetséges értékei: USER, TYPE, default és a NULL értéke. Itt adhatjuk meg a nulladik szint típusát.
- A nulladik szint megnevezése. Alapértelmezett érték esetén használhatjuk a default kulcsszót, vagy ha nem akarjuk megadni ezt a paramétert, akkor a NULL-t.
- Az első szint típusa, melyben az adatbázis objektum típusát adhatjuk meg. Ennek lehetséges értékei a következők: TABLE, VIEW, PROCEDURE, FUNCTION, DEFAULT, RULE, default és a NULL.
- Az első szint megnevezése. Alapértelmezett érték esetén használhatjuk a default kulcsszót, vagy ha nem akarjuk megadni ezt a paramétert, akkor a NULL-t.
- A második szint típusa. Ennek lehetséges értékei a következők: COLUMN, PARAMETER, INDEX, CONSTRAINT, TRIGGER, DEFAULT, default és a NULL.
- A második szint megnevezése. Alapértelmezett érték esetén használhatjuk a default kulcsszót, vagy ha nem akarjuk megadni ezt a paramétert, akkor a NULL-t.
Eredményül a függvény egy táblát ad vissza, melynek az alábbi a szerkezete:
| Oszlop neve |
Adat típusa |
Leírás |
| objtype |
sysname |
Objektum típusa |
| objname |
sysname |
Objektum neve |
| name |
sysname |
Tulajdonság neve |
| value |
sql_variant |
Tulajdonság értéke |
Mellékelt példánkban a cél az volt, hogy a létrehozott dbo tulajdonában lévő Table1 táblának oszlopaihoz tartozó leírásokat szerezzük meg. Ehhez az alábbi paraméterekkel kell meghívnunk a rendszer függvényt:
SELECT * FROM ::fn_listextendedproperty('MS_Description', 'USER', 'dbo', 'table', 'Table1', 'column', default)
Mivel itt nem saját tulajdonságról van szó, hanem egy beépített, minden táblánál meglévő tulajdonságról, így ennek a neve MS_Description lesz. Ezt követően megadjuk, hogy a dbo felhasználó, Table1 nevű tábláját szeretnénk elérni, ezen belül is az oszlopokat.
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
Delphi Software Offline 2002 évkönyv 344. 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!
|