
A példához szükséges a SampleDatabase08 adatbázis, melyet a mellékelt SampleDatabase08.sql lefuttatásával hozhatunk létre. A SampleDatabase08.sql script 5. sorában adja meg helyesen a létrehozandó adatbázisfájlok mappájának nevét és elérési útvonalát.
A sysindexkeys rendszertábla a sysindexes rendszertábla funkcióit egészíti ki olyan szempontból, hogy információkat tartalmaz a kulcsok és indexek oszlopaival kapcsolatban.
A rendszertábla oszlopai a következők:
| Oszlop neve |
Típusa |
Leírása |
| id |
int |
Tábla azonosítója, melyhez az index, illetve kulcs tartozik. |
| indid |
smallint |
Index azonosítója. |
| colid |
smallint |
Oszlop azonosítója. |
| keyno |
smallint |
Az adott oszlop helye az indexben. |
Példánkban a SamleDatabase08.sql parancsállomány lefuttatása után az adatbázisba került két adattáblához (Products és Orders) indexeket hozunk létre a CreateIndex tárolt eljárással, valamint indexeket törlünk a DropIndex tárolt eljárás segítségével, és megfigyeljük, hogyan változik a sysindexkeys rendszertábla tartalma. A rendszertábla adatai közül az alkalmazásban csak a két táblánkra létrehozott indexek és kulcsok adatait jelenítjük meg. A Form két nyomógombjával lehet elvégezni a fenti műveleteket.
A Form ’Rendszertáblák’ feliratú fülén található alsó két DBGrid kontrolban jelenítjük meg az adatbázisban megtalálható objektumok neveit (táblák és indexek) azonosítóikkal, elősegítendő a felső táblázat értelmezését.
Az indexek létrehozásakor és törlésekor frissítjük a TADODataSet objektumok tartalmát (ixSet tartalmazza a sysindexkeys rendszertábla, míg a sysiSet a sysindexes rendszertábla adatait). Létrehozás:
with DM do begin
CreateIndex.Execute;
ixSet.Requery;
sysiSet.Requery;
ixSet.Close;
sysiSet.Close;
ixSet.Open;
sysiSet.Open;
end;
...
A törlés:
with DM do begin
DropIndex.Execute;
ixSet.Requery;
sysiSet.Requery;
ixSet.Close;
sysiSet.Close;
ixSet.Open;
sysiSet.Open;
end;
...
Az indexek létrehozása után a következő sorok jelennek meg a sysindexkeys rendszertáblában:
| ID |
INDID |
COLID |
KEYNO |
| 1977058079 |
1 |
1 |
1 |
| 1977058079 |
2 |
2 |
1 |
| 2009058193 |
1 |
1 |
1 |
| 2009058193 |
2 |
1 |
1 |
| 2009058193 |
3 |
2 |
1 |