
A mellékelt példaprogram futtatása előtt a Unit1.pas forráskód 20. sorában lévő ConnectionString konstans értékét módosítsa úgy, hogy a Dolgozok példaadatbázis elérhetővé váljon.
A mellékelt Dolgozok.sql állomány tartalmazza a feltöltött példa adatbázis létrehozásához szükséges szkriptet. A szkript lefuttatásához használja az SQL szerver Manager programját. Amennyiben SQL szerverének elérési útja eltér a telepítési alapbeállítástól, úgy a script-ben írja át az elérési utakat a következőre: C:\Program Files\Microsoft SQL Server\MSSQL\data\
Egy SQL nézettáblát kétféleképen hozhatunk létre, SQL utasítás és az Enterprise Manager programban található varázsló segítségével.
Ha a nézettáblát SQL utasítással akarjuk létrehozni, mondjuk egy SQL szkriptben, akkor azt a CREATE VIEW parancs segítségével tehetjük meg:
CREATE VIEW nézettábla_neve [WITH ENCRYPTION] AS
SELECT utasítás . . .
FROM táblanév | nézettábla_neve
[WHERE záradék] [WITH CHECK OPTION]
Ha a nézettáblát az Enterprise Manager programban található varázsló segítségével akarjuk létrehozni, akkor azt a következő módon tehetjük meg. Válasszuk ki a használni kívánt adatbázist. A kiválasztott adatbázisnál válasszuk a Tools – Wizards menüpontot, majd a megjelenő ablakban bontsuk ki a Database elemet. Válasszuk a Create View Wizard-ot.
A Create View Wizard üdvözlő ablakában kattintsunk a Tovább gombra. A következő ablakban válasszuk ki a Dolgozok adatbázist, majd kattintsunk a Tovább gombra. A megjelenő Select Objects ablakban helyezzünk el egy pipát a Szemely tábla mellett lévő négyzetbe, majd itt is kattintsunk a Tovább feliratú gombra. A Select Columns ablakban jelöljük be a Nev és a SzulIdo mezőket, majd kétszer kattintsunk a Tovább gombra. A Name the View ablakban fogadjuk el a szerver által kínált nevet. Végül a varázsló utolsó ablakában láthatjuk a szerver által generált SQL parancsot.
USE [Dolgozok]
GO
CREATE VIEW [Szemely_VIEW]
AS SELECT [dbo].[Szemely].[Nev], [dbo].[Szemely].[SzulIdo]
FROM [dbo].[Szemely]
Végül kattintsunk a Befejezés feliratú gombra.
Ha az Enterprise Manager-ben megnézzük a Dolgozok adatbázis Views elemeit, látható, hogy létrejött a Szemely_VIEW objektum. A nézet tartalmát bármikor módosíthatjuk, ha az objektumon az egér jobb gombjával kattintunk és a Design View menüpontot választjuk.
A fenti példával azt értük el, hogy létrejött egy olyan nézet, amely a Szemely táblának csak a Nev és SzulIdo mezőit jeleníti meg. Ezzel korlátoztuk a megjelenítendő oszlopok számát. A felhasználó szempontjából ez olyan, mintha csak ez a két oszlop létezne.
Ha a megjelenítendő sorok számát is korlátozni akarjuk, akkor a varázsló által generált kódot bővítenünk kell a WHERE feltétellel.
A példa kedvéért módosítsuk a nézettábla tartalmát úgy, hogy csak azokat a személyeket jelenítse meg, akik 1972.01.01 után születtek.
SELECT Nev, SzulIdo
FROM dbo.Szemely
WHERE (SzulIdo > '01.01.1972')
A kód módosítását az előbb tárgyalt, Design View menüpont segítségével hajthatjuk végre.
Megkülönböztetünk egyszerű és összetett nézettáblákat. Egyszerűnek nevezzük az olyan nézettáblákat, ahol a nézet tartalma egyetlen adattáblából származik. Ha a nézet alapját több tábla képezi, akkor összetett nézettábláról beszélünk.
Hozzunk létre egy újabb nézetet, ez esetben egy összetett típusút. A nézettábla létrehozásához használjuk a Create View Wizard-ot. A Select Objects ablakban jelöljük ki mind a két táblát. A Select Columns ablakban jelöljük ki az összes oszlopot, az SZKod kivételével. A nézet neve legyen Osszesadat_VIEW. A varázsló utolsó ablakában bővítsük ki az SQL kódot egy WHERE feltétellel, amelyben a két tábla megfelelő rekordjait összekapcsoljuk.
CREATE VIEW [Osszesadat_VIEW]
AS SELECT [dbo].[Adatok].[Beosztas], [dbo].[Adatok].[Fizetes], [dbo].[Szemely].[Nev], [dbo].[Szemely].[SzulIdo]
FROM [dbo].[Adatok], [dbo].[Szemely]
WHERE [dbo].[Adatok].[SZKod]=[dbo].[Szemely].[SZKod]
Ezzel létrehoztunk egy összetett nézettáblát.
A nézettáblát átnevezhetjük az sp_rename paranccsal.
sp_rename régi_név, új_név
Ha az átnevezést az Enterprise Manager programból akarjuk végrehajtani, akkor a nézettábla objektum fölött nyomjuk le az egér jobb oldali gombját, majd válasszuk az Átnevezés menüpontot.
Ha a nézettáblát törölni szeretnénk, akkor azt megtehetjük az Enterprise Manager programban a szokott módon, vagy használhatjuk a DROP VIEW utasítást is.
DROP VIEW nézettábla_1, . . . nézettábla_n
A nézettábla törlése nem vonja maga után az általa megjelenített táblák tartalmának törlését. Egyszerűen csak a nézet objektum törlődik, az eredeti adatok változatlanul megmaradnak.
Amikor letörlünk egy olyan adattáblát, amelyhez nézettábla is tartozik, a nézettábla továbbra is megmarad. Azonban amikor használni szeretnénk, hibaüzenetet kapunk.
Nézettáblák forrástáblája más nézettábla is lehet.
Nézettáblák tartalmának megjelenítése Delphi alkalmazásokban
Egy nézettábla tartalmát az ADOQuery komponens segítségével jeleníthetjük meg. Példa adatbázisunknál maradva, ha a Szemely_VIEW nézet tartalmát akarjuk megjeleníteni, az ADOQuery komponens SQL mezőjébe a következő sort kell beírnunk.
SELECT * FROM Szemely_VIEW
A tábla tartalma a SELECT utasítás segítségével ugyanolyan módon lekérdezhető, mint bármely más adattábláé. Ha a nézet tartalmát egy ADOTable komponens segítségével próbáljuk megjeleníteni, akkor láthatjuk, hogy amikor a Table tulajdonságban ki akarjuk jelölni a megjelenítendő táblát, csak a Szemely és Adatok táblák neve jelenik meg. A nézeteket az ADOTable komponensen keresztül nem tudjuk elérni.